ToDo for 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"]. == Fix user submitted bugs * See https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=jenkins;users=qa.debian.org@packages.debian.org == General ToDo * move /srv/jenkins.debian.net-scm-sync.git somewhere public? * keep git+svn urls, and use commit hooks. also better for test setups of this setup as well as overall stability. * fully automate backup and backup /var/lib/jenkins/jobs /var/lib/munin /var/log /root/ /var/lib/jenkins/reproducible.db too * put kgb-client.conf in git and sed passwords from filesystem into it... * push jenkins munin plugins upstream == Debian Packaging related * /usr/sbin/jenkins.debian.net-setup needs to be written * what update-j.d.n.sh does, needs to be put elsewhere... * debian/copyright is incorrect about some licenses: a.) the profitbricks+debian+jenkins logos b.) the preseeding files === jenkins-job-builder related * get rid of some reduncacy in job-cfg/*.yaml * this seems to be helpful: http://en.wikipedia.org/wiki/YAML#References (pyyaml which jenkins-job-builder uses supports them) * FIXME: sometimes true and some True used in yaml files * support for gitweb in jobs ** needs clean merge of my patches to jenkins-job-builder first... * cleanup my patches (eg add documentation) and send pull requests on github: ** publisher:logparse ** publisher:htmlpublisher ** publisher:imagegallery ** svn:scm ** properties: sidebar * d-i and chroot housekeeping jobs should be kept 365 days == Improve existing tests === d-i_manual* * svn:trunk/manual/po triggers the full build, should trigger language specific builds. * svn:trunk/manual is all thats needed, not whole svn:trunk * inform translators (and debian-boot for the package) === d-i_build* * 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). * build branches? (which?) === chroot-installation_* * inform debian-devel@ * "Hash Sum Mismatch" problem with squid, see https://jenkins.debian.net/job/chroot-installation_squeeze_install_developer_upgrade_to_wheezy/13/console ** pere says this is supposed to be fixed in squid3 * chroot-installation: only trigger (=really run) jobs if available+used packages have changed (save packages in db and compare) * warn about transitional packages installed (on non-upgrades only) ---- h01ger: how about all of the blends? pabs, if you could give me concrete (meta-)package names to install, that would be great+very helpful for ^education* and ^debian-edu* i can find them myself h01ger: hmm, doesn't seem to be easy to find that list, but here are a few: ezgo-* med-* science-* junior-* gis-* ---- === webchecks* * inform debian-www@ ? === g-i-installation_*: * babelbox.git has a nice langlist * $name-preseed.base -> sed .cfg (LANG) * for edu: pick LANG from predefined list at random - if last build was not successful or unstable fall back to English ** these jobs would not need to do an install, just booting them in rescue mode is probably enough * test moar images: debian wheezy+sid cd and dvd images too and use lxde cd for installing lxde + etc * use jigdo to download images - but no edu jigdo images. * still havent got http://www.os-autoinst.org/ out of my mind === reproducible * schedule packages by adding them to a table in the db, to make sure each package is only scheduled once. ** needs new table: sources_scheduled: name, schedule_date (older=will be scheduled sooner, so its possible to set schedule_date to 1970... ** schedule (once every hour) if there are less then 300 packages scheduled: *** schedule up to 200 new ones *** then schedule up to 100 new versions (but not more than 200 in total) ** if thats less than 200 and in total there are less then 300 scheduled: *** schedule up to 100 same versions, older than a week *** schedule the oldest FTBFS packages - once every other scheduler run, which is run 24x a day ** another job: reschedule packages supplied by params (first those initital ones but also on demand, via cli or webgui) ** dont reschedule packages which 404ed or are blacklisted * then have other three runner job constantly picking up scheduled packages ** needs new table: runner_status, id, status (RUNNING, IDLE, STOPPED, START), timestamp ** if there are more than 30 packages scheduled, take 10, if more than 10, take 3, else 1. if 0, sleep 15m ** they write a timestamp to runner_status on each started package, so hanging builds can be detected ** have another job which kills them and marks them killed in db ** setup script shall cleanup workspaces from workers *** killer job is run before setup *** scheduler and builder jobs are started after * bugs / todo ** reschedule hurd-libfuse ** when notes are removed the navigation pages are not updated... (touch note_new on create, then on next run delete on all navi pages for which note_new exists) *** modify packages.yml locally to test... * CSS/HTML ** use iframes ** use font class=small statt size=+1 ** use icons within index pages (refactor to get rid of that case statement, use array instead) ** use css class to mark packages with notes, underline them. explain HAS_NOTE on every page which has them... * watch: zephyr (debbindiff timeout?) * watch: haskell-hsql-odbc (debbindiff error only in jenkins log, not in rbuild log * watch: cxxtest: dbd failure should be in rbuild output! * watch: android: no debbindiff output? * watch: swig/subversion (FTBFS, report note at least...) * watch: hurd-libfuse: should be not for us * run pbuilder with timeout 12h * new view: issues (show all issues in one page and the packages which are affected.) * generate .json for tracker.d.o * reschedule all pkg tested before oct 06 00:00 UTC (we want to know if they generate .buildinfo files) * reschedule all files with 0 length .rbuild.log files * watch it build :) === Test Debian live * daily build from sid * test live images from http://live.debian.net/cdimage/release/current-next and .../current == Add more tests === Test more Debian Edu related things * manual - by language and full * build a cd-image from all edu packages (even (and especially) UNRELEASED ones and do a g-i-installation test with it ** this probably better is done after the edu packages has been switched to git and when edu cd are (also?) build on pettersson.d.o ** also because it's probably better to do this with unmodified d-i first :-) * test minimal and sugar profile, as well as gnome and lxde * test dvd. test amd64 +i386 chroot setup. === Test tasks: * test installations with (at least) more language tasks enabled, though tasksel doesn't work like this: ---- how do i install a task outside d-i? what interesting tasks are there? tasksel install h01ger: http://packages.debian.org/source/sid/tasksel ---- Help explaining how to test tasks (ie all the language tasks) very much welcome! == Ideas... === Test co-installability ---- Install everything with priority >= optional? These packages are not supposed to conflict with each other. jwilk, there are tools to detect these package sets just based on debian/control information. no need to test this every day by installing them :) running these tools daily OTOH... http://coinst.irill.org/ ---- === Test them all * build packages from all team repos on alioth with jenkins-debian-glue on team request (eg, via a .txt file in a git.repo) for specific branches (which shall also be automated, eg. to be able to only have squeeze+sid branches build, but not all other branches.) // vim: set filetype=asciidoc: