summaryrefslogtreecommitdiffstats
path: root/job-cfg/reproducible.yaml
blob: 8a645c6d77fef91abe8ec269249665ae89caec1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
- defaults:
    name: reproducible
    triggers:
      - timed: "{my_timed}"
    project-type: freestyle
    concurrent: True
    properties:
      - sidebar:
          url: https://jenkins.debian.net/userContent/about.html
          text: About jenkins.debian.net
          icon: /userContent/images/debian-swirl-24x24.png
      - sidebar:
          url: https://jenkins.debian.net/view/reproducible
          text: reproducible builds jobs
          icon: /userContent/images/debian-jenkins-24x24.png
      - sidebar:
          url: http://www.profitbricks.com
          text: Sponsored by Profitbricks
          icon: /userContent/images/profitbricks-24x24.png
      - priority:
          job-prio: '150'
      - throttle:
          max-total: 3
          max-per-node: 3
          enabled: True
          option: category
          categories:
            - reproducible
    description: '{my_description}{my_packages}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.'
    logrotate:
      daysToKeep: 365
      numToKeep: 20
      artifactDaysToKeep: -1
      artifactNumToKeep: -1
    builders:
      - shell: '{my_shell} {my_packages}'
    publishers:
      - email:
          recipients: 'jenkins+debian-reproducible holger@layer-acht.org'
      - archive:
          artifacts: 'results/*.*'
          latest_only: false
      - logparser:
          parse-rules: '/srv/jenkins/logparse/reproducible.rules'
          unstable-on-warning: 'true'
          fail-on-error: 'true'
      - trigger:
          project: 'reproducible_stats'
          threshold: 'UNSTABLE'

- defaults:
    name: reproducible_setup
    triggers:
      - timed: "{my_timed}"
    project-type: freestyle
    properties:
      - sidebar:
          url: https://jenkins.debian.net/userContent/about.html
          text: About jenkins.debian.net
          icon: /userContent/images/debian-swirl-24x24.png
      - sidebar:
          url: https://jenkins.debian.net/view/reproducible
          text: reproducible builds jobs
          icon: /userContent/images/debian-jenkins-24x24.png
      - sidebar:
          url: http://www.profitbricks.com
          text: Sponsored by Profitbricks
          icon: /userContent/images/profitbricks-24x24.png
    description: '{my_description}{my_packages}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.'
    logrotate:
      daysToKeep: 365
      numToKeep: 20
      artifactDaysToKeep: -1
      artifactNumToKeep: -1
    builders:
      - shell: '{my_shell}'
    publishers:
      - email:
          recipients: 'jenkins+debian-reproducible holger@layer-acht.org'

- defaults:
    name: reproducible_stats
    triggers:
      - timed: "{my_timed}"
    project-type: freestyle
    properties:
      - sidebar:
          url: https://jenkins.debian.net/userContent/about.html
          text: About jenkins.debian.net
          icon: /userContent/images/debian-swirl-24x24.png
      - sidebar:
          url: https://jenkins.debian.net/view/reproducible
          text: reproducible builds jobs
          icon: /userContent/images/debian-jenkins-24x24.png
      - sidebar:
          url: http://www.profitbricks.com
          text: Sponsored by Profitbricks
          icon: /userContent/images/profitbricks-24x24.png
    description: '{my_description}{my_packages}<br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/reproducible.yaml">reproducible.yaml</a>.'
    logrotate:
      daysToKeep: 365
      numToKeep: 20
      artifactDaysToKeep: -1
      artifactNumToKeep: -1
    builders:
      - shell: '{my_shell}'
    publishers:
      - email:
          recipients: 'jenkins+debian-reproducible holger@layer-acht.org'
      - htmlpublisher:
          name: 'Reproducible builds statistics'
          directory: '.'
          indexfiles: 'index.html'
          keepall: True

- job-template:
    defaults: reproducible_setup
    name: '{name}_setup'

- job-template:
    defaults: reproducible_stats
    name: '{name}_stats'

- job-template:
    defaults: reproducible
    name: '{name}_build_test_reproducibility'

- job-template:
    defaults: reproducible
    name: '{name}_build_random_packages'

- job-template:
    defaults: reproducible
    name: '{name}_build_random_failures'

- job-template:
    defaults: reproducible
    name: '{name}_build_core'

- job-template:
    defaults: reproducible
    name: '{name}_build_build-tools'

- job-template:
    defaults: reproducible
    name: '{name}_build_desktop_apps'

- job-template:
    defaults: reproducible
    name: '{name}_build_gnome'

- job-template:
    defaults: reproducible
    name: '{name}_build_kde'

- job-template:
    defaults: reproducible
    name: '{name}_build_xfce'

- job-template:
    defaults: reproducible
    name: '{name}_build_lxde'

- job-template:
    defaults: reproducible
    name: '{name}_build_mate'

- job-template:
    defaults: reproducible
    name: '{name}_build_cinnamon'

- job-template:
    defaults: reproducible
    name: '{name}_build_libreoffice'

- job-template:
    defaults: reproducible
    name: '{name}_build_xorg'

- job-template:
    defaults: reproducible
    name: '{name}_build_server'

- job-template:
    defaults: reproducible
    name: '{name}_build_security-privacy'

- job-template:
    defaults: reproducible
    name: '{name}_build_d-i'

- project:
    name: reproducible
    jobs:
        - '{name}_setup':
            my_description: 'Setup pbuilder for reproducible builds as described in https://wiki.debian.org/ReproducibleBuilds#Usage_example'
            my_timed: '42 0 * * *'
            my_shell: '/srv/jenkins/bin/reproducible_setup.sh'
            my_packages: ''
        - '{name}_stats':
            my_description: 'Reproducible builds statistics'
            my_timed: '0 0 * * *'
            my_shell: '/srv/jenkins/bin/reproducible_stats.sh'
            my_packages: ''
        - '{name}_build_random_packages':
            my_description: 'Reproducible build this many random packages each day:'
            my_timed: '0,15,30,45 * * * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: '10'
        - '{name}_build_random_failures':
            my_description: 'Try to reproducible build 33 packages which failed before and which come from the random job:'
            my_timed: '42 2,14 * * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: '0'
        - '{name}_build_test_reproducibility':
            my_description: 'Reproducible build of a few packages, some we know will succeed and some we know which "should" fail: '
            my_timed: ''
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'lsb ucf lsof'
        - '{name}_build_core':
            my_description: 'Reproducible build of all the core packages as defined by UDD as described in https://wiki.debian.org/ReproducibleBuilds so these: '
            my_timed: '42 5 1,16 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'acl adduser attr audit base-files base-passwd bash binutils bsdmainutils bzip2 cdebconf cloog coreutils cryptsetup dash db5.3 dbus debconf debhelper debianutils dh-buildinfo diffutils dpkg e2fsprogs eglibc file findutils gcc-4.9 gcc-defaults gdbm gettext glib2.0 glibc gmp grep groff gzip hostname init-system-helpers insserv intltool-debian isl kmod libcap2 libcroco libffi libgcrypt11 libgcrypt20 libgpg-error libintl-perl libpipeline libselinux libsemanage libsepol libtext-unidecode-perl libtimedate-perl libunistring libxml2 libxml-libxml-perl libxml-namespacesupport-perl libxml-sax-base-perl libxml-sax-perl linux lsb lvm2 make-dfsg man-db mawk mpclib3 mpfr4 ncurses pam patch pcre3 perl po-debconf procps sed sensible-utils shadow startpar systemd sysvinit tar tcp-wrappers texinfo tzdata ucf ustr util-linux xz-utils zlib'
        - '{name}_build_build-tools':
            my_description: 'Reproducible build packages which are used to build other packages.<br>Source packages to be build: '
            my_timed: '42 23 1,16 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'cdbs eglibc gcc-defaults devscripts python-defaults python3-defaults ruby-defaults ruby2.1 ghc php5 tcl asciidoc ant maven maven2 lintian pbuilder piuparts schroot fakeroot sbuild cowbuilder git subversion bzr android-tools android-platform-system-core android-platform-build android-platform-frameworks-native fdroidserver'
        - '{name}_build_desktop_apps':
            my_description: 'Reproducible build of desktop applications: '
            my_timed: '42 5 2,17 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'abiword alacarte avahi calligra cheese chromium-browser gobby-0.5 cups-pk-helper desktop-base emacs23 emacs24 vim joe nano emacs-defaults evince evolution galculator gedit-plugins gimp gnumeric gpicview gst-libav1.0 gst-plugins-ugly1.0 hamster-applet iceweasel inkscape irssi leafpad libgtk2-perl mplayer2 screen mutt marble network-manager obconf orage pidgin rhythmbox rygel seahorse shotwell simple-scan sound-juicer tango-icon-theme telepathy-gabble telepathy-rakia telepathy-salut texlive-base tomboy totem tracker transmission udisks2 upower vim vinagre virt-manager vlc wine xarchiver xdg-user-dirs-gtk virtualbox wpasupplicant wicd'
        - '{name}_build_gnome':
            my_description: 'Reproducible build of GNOME packages: '
            my_timed: '23 5 2,17 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'gdm3 gnome-color-manager gnome-documents gnome-main-menu gnome-media gnome-nettool gnome-orca gnome-shell-extensions gnome-tweak-tool meta-gnome3 nautilus'
        - '{name}_build_kde':
            my_description: 'Reproducible build of KDE packages: '
            my_timed: '42 5 3,18 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'kdeartwork kde-baseapps kde-l10n kdepim kdeplasma-addons kde-runtime kdewebdev kde-workspace meta-kde'
        - '{name}_build_xfce':
            my_description: 'Reproducible build of Xfce packages: '
            my_timed: '23 5 3,18 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'gtk2-engines-xfce libxfce4ui thunar thunar-volman xfce4 xfce4-appfinder xfce4-mixer xfce4-notifyd xfce4-panel xfce4-power-manager xfce4-session xfce4-settings xfconf xfdesktop4'
        - '{name}_build_lxde':
            my_description: 'Reproducible build of LXDE packages: '
            my_timed: '42 5 4,19 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'lxappearance lxde-icon-theme lxde-metapackages lxinput lxrandr lxsession libfm lxterminal'
        - '{name}_build_mate':
            my_description: 'Reproducible build of the Mate packages: '
            my_timed: '23 5 4,19 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'mate-applets mate-backgrounds mate-common mate-control-center mate-desktop mate-desktop-environment mate-icon-theme mate-icon-theme-faenza mate-indicator-applet mate-media mate-menus mate-netbook mate-netspeed mate-notification-daemon mate-panel mate-polkit mate-power-manager mate-screensaver mate-sensors-applet mate-session-manager mate-settings-daemon mate-system-monitor mate-terminal mate-themes mate-user-share mate-utils'
        - '{name}_build_cinnamon':
            my_description: 'Reproducible build of the Cinnamon packages: '
            my_timed: '42 5 5,20 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'cinnamon cinnamon-control-center cinnamon-desktop cinnamon-desktop-environment cinnamon-screensaver cinnamon-session cinnamon-settings-daemon cinnamon-translations'
        - '{name}_build_libreoffice':
            my_description: 'Reproducible build of these libreoffice related packages: '
            my_timed: '42 23 5,20 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'libreoffice'
        - '{name}_build_xorg':
            my_description: 'Reproducible build of these X.Org and and related packages: '
            my_timed: '42 5 6,21 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'libglu mesa x11-apps x11-session-utils x11-utils x11-xfs-utils x11-xkb-utils x11-xserver-utils xauth xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable xfonts-utils xinit xkeyboard-config xorg xorg-docs xorg-server xserver-xorg-input-evdev xterm x-terminal-emulator glx-alternatives fglrx-driver xserver-xorg-video-nouveau xf86-input-mtrack xf86-input-multitouch xf86-input-wacom xserver-xorg-input-acecad xserver-xorg-input-aiptek xserver-xorg-input-elographics xserver-xorg-input-joystick xserver-xorg-input-keyboard xserver-xorg-input-mouse xserver-xorg-input-mutouch xserver-xorg-input-vmmouse xserver-xorg-input-void xf86-video-glamo xserver-xorg-video-ati xserver-xorg-video-cirrus xserver-xorg-video-dummy xserver-xorg-video-fbdev xserver-xorg-video-glide xserver-xorg-video-intel xserver-xorg-video-ivtvdev xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-modesetting xserver-xorg-video-neomagic xserver-xorg-video-openchrome xserver-xorg-video-qxl xserver-xorg-video-r128 xserver-xorg-video-savage xserver-xorg-video-siliconmotion xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident xserver-xorg-video-vesa xserver-xorg-video-vmware xpra aterm mlterm mrxvt putty roxterm rxvt rxvt-unicode terminal.app'
        - '{name}_build_server':
            my_description: 'Reproducible build of these server packages: '
            my_timed: '42 23 6,21 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'apache2 asterisk bind9 courier icinga icinga2 lighttpd munin mysql-5.5 nginx postfix exim4 sendmail postgresql-9.4 squid squid3 roundcube openssh rsync nfs-utils bitlbee dropbear puppet cfengine2 ansible fai salt'
        - '{name}_build_security-privacy':
            my_description: 'Reproducible build of these security and privacy related packages: '
            my_timed: '42 5 7,22 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'aircrack-ng apparmor apparmor-profiles-extra assword bilibop corkscrew cryptsetup debian-archive-keyring debian-security-support dmsetup flashproxy gnome-keyring gnunet gnunet-fuse gnunet-gtk gnupg gnupg2 gnutls28 haveged https-everywhere iodine irssi-plugin-otr keepassx libotr macchanger macchanger mat monkeysign monkeysphere mozilla-noscript msva-perl mumble nautilus-wipe obfs4proxy obfsproxy onioncat onionshare openssl openvpn parcimonie pidgin-otr pinentry privoxy pwgen python-pyptlib python-stem python-torctl python-txtorcon seahorse-nautilus secure-delete signing-party tcpdump tlsdate tor tor-arm torbrowser-launcher torsocks vidalia wireshark'
        - '{name}_build_d-i':
            my_description: 'Reproducible build of these debian-installer packages: '
            my_timed: '42 23 7,22 * *'
            my_shell: '/srv/jenkins/bin/reproducible_build.sh'
            my_packages: 'anna apt-setup arcboot-installer base-installer bterm-unifont busybox cdebconf-entropy cdebconf-terminal cdebconf cdrom-checker cdrom-detect cdrom-retriever choose-mirror clock-setup console-setup debian-installer-launcher debian-installer-netboot-images debian-installer-utils debian-installer debootstrap dh-di efi-reader elilo-installer finish-install flash-kernel grub-installer hw-detect installation-locale installation-report iso-scan kbd-chooser kernel-wedge kickseed libdebian-installer lilo-installer live-installer localechooser lowmem lvmcfg main-menu mdcfg media-retriever mklibs mountmedia net-retriever netcfg network-console nobootloader oldsys-preseed os-prober partconf partitioner partman-auto-crypto partman-auto-lvm partman-auto-raid partman-auto partman-base partman-basicfilesystems partman-basicmethods partman-btrfs partman-crypto partman-efi partman-ext3 partman-iscsi partman-jfs partman-lvm partman-md partman-multipath partman-nbd partman-newworld partman-partitioning partman-prep partman-target partman-ufs partman-xfs partman-zfs pkgsel prep-installer preseed quik-installer rescue rootskel-gtk rootskel s390-dasd s390-netdevice s390-sysconfig-writer sibyl-installer silo-installer tzsetup udpkg usb-discover user-setup userdevfs win32-loader yaboot-installer zipl-installer'

# PACKAGES=" "
# echo $PACKAGES | sed -s "s# #\n#g" | sort | xargs echo

# (for i in $LIST_OF_BINARIES; do apt-cache show $i | grep ^Source | cut -d " " -f2  ; apt-cache show $i | grep -q Source || echo $i ; apt-cache showsrc $i 2>/dev/null | grep ^Package  | cut -d " " -f2 ; done ) | sort -u | grep -v build-essential | xargs echo