README 10.3 KB
Newer Older
1
2
3
4
5
About jenkins.debian.net
========================
:Author:           Holger Levsen
:Authorinitials:   holger
:EMail:            holger@layer-acht.org
6
:Status:           working, in progress
7
8
9
10
11
12
:lang:             en
:Doctype:          article
:Licence:	   GPLv2

== About jenkins.debian.net

13
https://jenkins.debian.net is a tool for automated quality monitoring of Debian. It is *work in progress* despite being in existence since October 15th 2012.
Holger Levsen's avatar
Holger Levsen committed
14

15
Get the source by running `git clone git://git.debian.org/git/qa/jenkins.debian.net.git`. It's all in there, no (relevant) manual setup has been done besides what's in this git repository. (The irrelevant bits are some very simple configuration files containing passwords.)
Holger Levsen's avatar
Holger Levsen committed
16

17
The (virtualized) hardware is sponsored since October 2012 by http://www.profitbricks.com - currently it's using 15 cores and 50 GB memory, thanks a lot!
Holger Levsen's avatar
Holger Levsen committed
18

Holger Levsen's avatar
Holger Levsen committed
19
Some stats are available using link:https://jenkins.debian.net/munin/jenkins-month.html[munin-plugins for jenkins].
20

21
22
If you notice some jobs has problems and you want to find out why, read <<debug,debug certain jobs>> to learn how to do this locally.

23
24
25
26
== Notifications

There are two types of notifications being used: email and IRC. At the end of each builds console log it says to where notifcations has been send. An adress of the form 'jenkins-foo' means an IRC notification has been send to the #foo IRC channel.

27
28
All job result notifications should be sent to https://lists.alioth.debian.org/mailman/listinfo/qa-jenkins-scm and optionally to other recipients as well.

29
30
== Jobs being run

31
There are over 400 jobs being run currently. If you can think of ways to improve the usefulness of certain jobs, please do give feedback!
32

33
=== g-i-installation jobs
Holger Levsen's avatar
Holger Levsen committed
34

35
36
Installation tests with g-i, the graphical version of d-i, the debian-installer.

Holger Levsen's avatar
update    
Holger Levsen committed
37
38
* 'g-i-installation_debian_sid_daily-rescue'
** boot of rescue system with daily build sid image
39

40
* 'g-i-installation_debian_sid_daily-lxde' and '-xfce' and '-kfreebsd' and '-hurd'
41
** sid installation of Xfce/LXDE desktop with daily build sid image
Holger Levsen's avatar
update    
Holger Levsen committed
42

Holger Levsen's avatar
Holger Levsen committed
43
44
45
46
47
* 'g-i-installation_debian_jessie_lxde','-xfce','-kde' and '-gnome' and '-kfreebsd'
** jessie installation of Xfce/LXDE/KDE desktop and kfreebsd install with weekly build jessie image

* 'g-i-installation_debian_wheezy_lxde','-xfce','-kde' and '-gnome' and '-kfreebsd'
** wheezy installation of Xfce/LXDE/KDE desktop and kfreebsd install with wheezy release image
48
49
50

=== debian-installer jobs

Holger Levsen's avatar
Holger Levsen committed
51
* 'd_i_build_$source_package'
Holger Levsen's avatar
Holger Levsen committed
52
53
** there is one job for each git repo referred to in http://anonscm.debian.org/viewvc/d-i/trunk/.mrconfig?view=co
** each job pdebuilds the master branch of its git repo on every git push in a sid environment. (If the architecture(s) specified in debian/control are not amd64,all or any the build exits cleanly.)
54
** while these jobs are triggered on commits, the SCM is only polled every 6min to see if there are new commits.
Holger Levsen's avatar
Holger Levsen committed
55

Holger Levsen's avatar
Holger Levsen committed
56
* 'd_i_manual'
57
** builds the full installation-guide package with pdebuild in sid on every commit to svn://anonscm.debian.org/svn/d-i/ matching suitable patterns.
58
** while this job is triggered on commits, the SCM is only polled every 15min to see if there are new commits.
Holger Levsen's avatar
Holger Levsen committed
59

Holger Levsen's avatar
Holger Levsen committed
60
* 'd_i_manual_$language_html'
Holger Levsen's avatar
Holger Levsen committed
61
** builds a language (on wheezy) on every commit of svn/trunk/manual/$LANG with `make languages=$LANG architectures=amd64 formats=html`.
62
** while these jobs are triggered on commits, the SCM is only polled every 15min to see if there are new commits.
Holger Levsen's avatar
Holger Levsen committed
63
** on successful build, 'd_i_manual_$lang_pdf' is triggered.
Holger Levsen's avatar
Holger Levsen committed
64

Holger Levsen's avatar
Holger Levsen committed
65
* 'd_i_parse_build_logs' - parses logs from http://d-i.debian.org/daily-images/build-logs.html daily, to give them a bit more exposure.
66
** this job is run daily.
Holger Levsen's avatar
Holger Levsen committed
67

68
=== chroot-installation jobs
69

70
71
Installation tests inside chroot environments.

72
* 'chroot-installation_maintainance_$distro':
73
** make sure chroots have been cleaned up properly
74
75
76
** runs daily at 05:00 UTC and triggers the $distro specific bootstrap job on success
** wheezy is only triggered on the 4th day and 18th of each month (as it was released on the 4th)
** squeeze only on the 25th of each month
77
78
* $distro-bootstrap jobs:
** just `debootstrap $distro` (install a base Debian distribution $distro)
79
** there is one job for *sid*, one for *wheezy* and one for *jessie*: 'chroot-installation_sid_bootstrap', 'chroot-installation_wheezy_bootstrap' and 'chroot-installation_jessie_bootstrap'
80
* plus there is 'chroot-installation_squeeze_bootstrap_upgrade_to_wheezy', which bootstraps *squeeze* and upgrades that to *wheezy*
81
82
** on successful run of the bootstrap job, six $distro-install(+upgrade) jobs are triggered.

83
84
* FIXME: describe upgrade jobs here too

85
86
* $distro-install jobs (and $distro-install+upgrade jobs):
** `debootstrap $distro`, install a *$set_of_packages* (and upgrade to *$2nd_distro*)
Holger Levsen's avatar
Holger Levsen committed
87
** these $set_of_packages exist: 'gnome', 'kde', 'kde-full', 'lxde', 'xfc', 'full_desktop' (all five desktops plus `vlc evince iceweasel chromium cups build-essential devscripts wine texlive-full asciidoc vim emacs` and (`libreoffice virt-manager mplayer2` (jessie/sid) or `openoffice virtualbox mplayer` (squeeze/wheezy)) and 'develop'
88
*** install is done with `apt-get install`, except for 'develop' where `apt-get build-dep` is used to install the build dependencies of these packages.
Holger Levsen's avatar
Holger Levsen committed
89

90
91
92
93
=== Debian Edu related jobs

* All Debian Edu related jobs can be seen at these two URLs:
** https://jenkins.debian.net/view/edu_devel/ about Debian Edu Jessie
Holger Levsen's avatar
Holger Levsen committed
94
** https://jenkins.debian.net/view/edu_stable/ about Debian Edu Wheezy
95
96

* Then there are three types of jobs:
Holger Levsen's avatar
Holger Levsen committed
97
** 'g-i-installation_$(distro)_$(profile)':
98
99
100
*** tests installation of a profile with preseeding in the graphical installer,
*** screenshots and logs are preserved and a movie created,
*** testing clients against the main-server is planned too, for some time...
Holger Levsen's avatar
Holger Levsen committed
101
** 'chroot-installation_$(distro)_install_$(education-metapackage)':
102
*** tests apt installation of a metapackage in a specic distro.
Holger Levsen's avatar
Holger Levsen committed
103
* 'edu-packages_$(distro)_$(src-package)':
104
105
106
** builds one of the six debian-edu packages ('debian-edu', 'debian-edu-config', 'debian-edu-install', 'debian-edu-doc', 'debian-edu-artwork', 'debian-edu-archive-keyring' on every push to it's git master branch
** and whenever 'debian-edu-doc' is build, https://jenkins.debian.net/userContent/debian-edu-doc/ get's updated automatically afterwards too.

107
=== qa.debian.org packages related jobs
108

109
110
* Currently there are two types, one for lintian and one for piuparts.
* The both simply build the master branch of the lintian GIT repository on every commit against sid. If that succeeds, the same source will be build on jessie and then on wheezy. (piuparts will not be build on wheezy as its current build depends do not exists in wheezy.)
111
112
113

=== haskell jobs

114
* See https://wiki.debian.org/Haskell for more information about those jobs.
115
116
117

=== rebootstrap jobs

118
* See https://wiki.debian.org/HelmutGrohne/rebootstrap for more information about these jobs.
119

120
121
=== reproducible jobs

122
* See https://wiki.debian.org/ReproducibleBuilds to learn more about "Reproducible Builds" in Debian and beyond.
123

124
* Several jobs are being used to test whether packages be build reproducible or not. The result is the website https://reproducible.debian.net which is actually just a collection of html files being served from this host. Three suites are tested on amd64: 'testing', 'unstable' and 'experimental'.
125

126
* There are three builder jobs, alpha+beta+gamma which are each started every 2min.. There is a scheduler jobs scheduling builds for them, and job to setup and update the pbuilder base.tgz archives for the different suites.
127
128
129
130
131
132

* Several other jobs exist to build the html pages, to create a JSON file which can be downloaded from https://reproducible.debian.net/reproducible.json.

* The SQLite database used can be downloaded from https://reproducible.debian.net/reproducible.db.

* The reproducible build jobs use their own pbuilder base.tgz, which has the reproducible apt repo added. And there another sid schroot is being used, where debbindiff (which has lots of depends installed) is run from.
133

134
* Manual rescheduling of packages is easy, if you have console access. (Hint: you don't but someone on #debian-reproducible will have.) This is how to:
135
136

----
137
jenkins@jenkins:~$ /srv/jenkins/bin/reproducible_schedule_on_demand.sh package1 package2 abcde
138
----
139

140
141
142
143
144
145
146
* blacklisting packages can be done similarily, optionally list reaons in 'notes.git/packages.yml'

----
jenkins@jenkins:~$ /srv/jenkins/bin/reproducible_blacklist.sh package1
----


147
148
=== dvswitch jobs

149
150
151
152
* There are three jobs currently:
** 'dvswitch_sid' and 'dvswitch_jessie' build the master branch of dvswitch against that environment.
** while 'dvswitch_against_libav_git' builds the master branch of dvswitch using libav also build from it's master branch. This is done in an sid environment.
** Except for 'dvswitch_jessie' which is triggered by a successful 'dvswitch_sid' run, the jobs are triggered by git commits.
153

154
=== jenkins.d.n jobs
Holger Levsen's avatar
Holger Levsen committed
155
156
157

These are jobs for making sure jenkins.debian.net is running smoothly.

158
159
160
161
162
[[debug]]
== Debugging certain jobs

*FIXME*: To debug certain jobs, a jenkins setup is actually not needed. Make this easy and describe here.

163
*This is work in progress too, but mostly just needs documentation!* In principle the shell commands from the various jobs should run on any Debian system just fine. Please use a test system though, as all your data might be eaten.
164

165
* Build this source as a debian package and install the jenkins.d.n-debug package and all it's recommends.
166

Holger Levsen's avatar
Holger Levsen committed
167
168
=== Feedback

169
I love to get feedback on this! Either by sending an email to debian-qa@lists.debian.org or by joining #debian-qa on irc.debian.org and expressing yourself there. The best way is to link:https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=jenkins;users=qa.debian.org@packages.debian.org[report bugs], even better if accompanied by patches or pull requests. But really, all feedback is appreciated!
Holger Levsen's avatar
Holger Levsen committed
170
171
172

=== Setup

Holger Levsen's avatar
Holger Levsen committed
173
See link:https://jenkins.debian.net/userContent/setup.html[INSTALL].
Holger Levsen's avatar
Holger Levsen committed
174
175
176

=== ToDo

Holger Levsen's avatar
Holger Levsen committed
177
There is still a lot of work left, check the current link:https://jenkins.debian.net/userContent/todo.html[ToDo list].
Holger Levsen's avatar
Holger Levsen committed
178

179
180
181
=== Thanks

See link:https://jenkins.debian.net/userContent/thanks.html[THANKS].
Holger Levsen's avatar
Holger Levsen committed
182

183
== License
184

185
186
187
188
* everything except features and bin/libvirt_cucumber_tests:
** GPLv2, see link:http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/LICENSE[LICENSE].
* features and bin/libvirt_cucumber_tests:
** GPLv3+
189

Holger Levsen's avatar
Holger Levsen committed
190
// vim: set filetype=asciidoc: