Setup of jenkins.debian.net =========================== :Author: Holger Levsen :Authorinitials: holger :EMail: holger@layer-acht.org :Status: working, in progress :lang: en :Doctype: article :Licence: GPLv2 == About jenkins.debian.net See link:https://jenkins.debian.net/userContent/about.html["about jenkins.debian.net"]. == Setup === Installed software that makes jenkins.debian.net run link:https://jenkins.debian.net[jenkins.debian.net] runs Debian jessie. === Jenkins Currently running the long term support .deb from jenkins-ci.org. Jenkins is installed using 'deb http://pkg.jenkins-ci.org/debian-stable binary/' into '/etc/apt/sources.list.d/jenkins.list' and `apt-get update && apt-get install jenkins`. We would prefer to run a jenkins package from jessie-backports. ==== Jenkins plugins * Jenkins GIT plugin * Jenkins Subversion Plug-in * Email-ext Plugin * Log Parser Plugin * HTML Publisher plugin * Static Analysis Utilities * Read-only configurations * SCM Sync Configuration Plugin * Dependency Graph Viewer Plugin * View Job Filters * Console Column Plugin * Priority Sorter Plugin * Throttle Concurrent Builds Plugin * Next Executions Plugin * Build-timeout Plugin * Build Token Root Plugin * Embeddable Build Status Plugin * Plot Plugin * Sidebar Link * Green Balls * Compact Columns * Console Tail Plugin * Cron Column * Simple Theme Plugin * LiveScreenshot Plugin * Locale plugin * Jenkins Translation Assistance plugin === updating jenkins.debian.net with 'update_jdn.sh' 'update_jdn.sh' is a hackish script which will install all needed packages, copy their configuration in place, generate the documentation webpages and update all jenkins jobs if needed. As user run: ---- cd git clone git://git.debian.org/git/qa/jenkins.debian.net.git cd jenkins.debian.net ./update_jdn.sh ---- 'vncdotool' is the only software which is not installed by packages and is not covered by this script. === IRC notification configuration using kgb-client The jenkins jobs are configured to send email to 'jenkins+$IRC_CHANNEL' (like 'jenkins+debian-qa'), this is parsed by a script ('/srv/jenkins/bin/email2irc.sh') run through 'procmail' which then in turn notifies 'kgb-client', which notfies 'kgb-server'(s) on the internet, which are the bots notifying the IRC channels. The Jenkins EMail notification plugin is used as its state tracking is best (and the Jenkins IRC plugin is way too powerful). === Installing vncdotool ---- apt-get install python-twisted python-imaging git clone https://github.com/sibson/vncdotool cd vncdotool/ python setup.py install ---- === munin link://munin-monitoring[Munin] is installed, running with link:https://jenkins.debian.net/munin/[jenkins plugins] not yet published elsewhere. === Using jenkins-job-builder 'update_jdn.sh' takes care of this too, so this is just a quick run through. Make sure to also look at the upstream documentation at http://ci.openstack.org/jenkins-job-builder/ * run `cd /srv/jenkins/job-cfg ; jenkins-job-builder update .` to update jobs * for testing: `cd /srv/jenkins/job-cfg ; rm test-output/ -r ; mkdir test-output ; jenkins-job-builder test . -o test-output/ ; ls test-output/` === Backup Currently only the configuration is backed up, but neither the jenkins results nor system logs. But that's at least sufficient to re-setup the system if needed. * The _etckeeper_ package is installed and automatically keeps '/etc' in '/etc/.git'. * The _SCM Sync Configuration Plugin_ is installed in Jenkins, putting all Jenkins configuration into '/srv/jenkins.debian.net-scm-sync.git'. ** (This is not ideal yet, because it also puts the generated job configuration there...) I've cloned these two git repos on my desktop and manually run `git pull`. This is certainly not ideal but good enough to re-setup the system anytime, which is something. // vim: set filetype=asciidoc: