About jenkins.debian.net ======================== :Author: Holger Levsen :Authorinitials: holger :EMail: holger@layer-acht.org :Status: in progress :lang: en :Doctype: article :Licence: GPLv2 == About jenkins.debian.net * http://jenkins.debian.net is pretty much work in progress, (hopefully) doing something useful since October 15th 2012. * Join #debian-qa on irc.debian.org to report bugs or give other feedback! Use debian-qa@lists.debian.org if you prefer mail. * 'git clone git://git.debian.org/git/users/holger/jenkins.debian.net.git' * (virtual) hardware sponsored by http://www.profitbricks.com - currently it's just a server, but in future there will be installation and tests clients started on demand as well. * some stats are available at http://jenkins.debian.net/munin/jenkins-month.html == More tests to be run === Tests for supporting d-i development: * build the manual on every commit ** later: notify debian-boot@l.d.o and #debian-boot * run scripts/digress/ * bubulle wrote: "Another interesting target would be d-i builds *including non uploaded packages* (something like "d-i from git repositories" images). That would in some way require to create a quite specific image, with all udebs (while netboot only has udebs needed before one gets a working network setup). === Test cd-images: * start client VMs using the profitbricks API: https://www.profitbricks.com/us/media/docs/PB_PublicAPI_EN.pdf (and dhcp) * to test (at first) weekly images of amd64 std,kde,lxde+xfce weekly and the first sid-di daily ** http://cdimage.debian.org/cdimage/weekly-builds/amd64/jigdo-cd/ ** http://cdimage.debian.org/cdimage/daily-builds/sid_d-i/20121020-1/amd64/ * use jigdo to download those images === Test tasks: * test installations with (at least) more language tasks enabled ---- how do i install a task outside d-i? what interesting tasks are there? tasksel install h01ger: http://packages.debian.org/source/sid/tasksel ---- (FIXME: tasksel doesn't work like this) === Tests using autopkgtest * I aware but also lost, after looking at /usr/share/doc/autopkgtest/ - wanna help? * https://wiki.ubuntu.com/AutomatedTesting has more information, but help is still welcome to implement this. * finding packages with autopkgtests: http://lists.debian.org/debian-qa/2012/11/msg00012.html ** this only lists a few packages, so a very first test could be to compare this list against this: `wget -q http://http.debian.net/debian/dists/unstable/main/Contents-source.gz -O- | zgrep -m1 -E '^debian/tests/control\s'`, make a job out of it and make it UNSTABLE if the diff is non-zero. And as a second step, run those tests... * also see http://dep.debian.net/deps/dep8/ == General ToDo * get rid of some reduncacy in job-cfg/*.yaml and also fix the FIXMEs there * add documentation for jenkins-job-builder and send pull requests on github: ** publisher:logparse ** publisher:htmlpublisher ** svn:scm ** properties: sidebar * mail notifications (to where?) * proper backup (=daily), see bottom of this document for what to backup * split TODO and about.txt? ** use debian stylesheet * proper git repo url, outside users/holger ** http://anonscm.debian.org/gitweb/?p=users/holger/jenkins.debian.net.git * only trigger (=really run) jobs if available+used packages have changed (save packages in db and compare) == Installed software that makes jenkins.debian.net run * jenkins.debian.net runs Debian wheezy. * FIXME: describe how jenkins is installed + configured, basically put 'deb http://pkg.jenkins-ci.org/debian-stable binary/' into '/etc/apt/sources.list.d/jenkins.list' and `apt-get update` * needed packages are listed in 'update_jdn.sh' and which will also make sure they are installed ** 'update_jdn.sh' is available in the git repo * package configuration is kept in that git repo and deployed by 'update_jdn.sh' as well. === Installing jenkins-job-builder * rebuild python-jenkinsapi from sid for wheezy: * `pip install python-jenkins` * `git clone https://github.com/openstack-ci/jenkins-job-builder ; cd jenkins-job-builder ; python setup.py install` ** actually https://github.com/h01ger/jenkins-job-builder is used atm. === Using jenkins-job-builder * then run `cd /srv/jenkins/job-cfg ; jenkins-jobs update .` to update jobs * testing: `cd /srv/jenkins/job-cfg ; rm test-output/ -r ; mkdir test-output ; jenkins-jobs test . -o test-output/ ; ls test-output/` == To backup * '/etc/.git' * '/var/lib/jenkins/config.xml' as well as its plugins