reproducible.yaml 41.8 KB
Newer Older
1
- defaults: &DEFAULTS
Holger Levsen's avatar
Holger Levsen committed
2
    name: reproducible
3
    project-type: freestyle
4
    my_disabled:
Mattia Rizzolo's avatar
Mattia Rizzolo committed
5
    my_gitbranches: '*/master'  # j-j-b default
6
    my_scmpoll: 'H H/12 * * *' # fallback when the trigger doesn't work somehow
7
    disabled: '{obj:my_disabled}'
8
    properties: &sidebar
9
      - sidebar: &sb1
10
          url: https://jenkins.debian.net/userContent/about.html
11
          text: About jenkins.debian.net
12
          icon: /userContent/images/debian-swirl-24x24.png
13
      - sidebar: &sb2
14
          url: https://jenkins.debian.net/view/reproducible
15
          text: reproducible builds jobs
16
          icon: /userContent/images/debian-jenkins-24x24.png
17
      - sidebar: &sb3
18
          url: http://www.profitbricks.co.uk
19 20
          text: Sponsored by Profitbricks
          icon: /userContent/images/profitbricks-24x24.png
21
    description: &desc '{my_description}<br>Job configuration source is <a href="https://salsa.debian.org/qa/jenkins.debian.net/blob/master/job-cfg/reproducible.yaml">reproducible.yaml</a>.<br>Results are available at <a href="https://tests.reproducible-builds.org/">https://tests.reproducible-builds.org</a>.'
22 23
    triggers:
      - timed: '{my_timed}'
24
    logrotate: &logrotate
25
      daysToKeep: 31
26
      numToKeep: 50
27 28 29 30 31
      artifactDaysToKeep: -1
      artifactNumToKeep: -1
    builders:
      - shell: '{my_shell}'
    publishers:
32
      - logparser: &logparser
33 34 35
          parse-rules: '/srv/jenkins/logparse/reproducible.rules'
          unstable-on-warning: 'true'
          fail-on-error: 'true'
36
      - email: &email
37
          recipients: '{my_recipients}'
38 39 40
      - naginator: &naginator
          progressive-delay-increment: 5
          progressive-delay-maximum: 15
41
          max-failed-builds: 3
42
          regular-expression: '{my_naginator_regex}'
43
    node: '{my_node}'
44 45 46
    wrappers:
      - timeout:
          timeout: '{my_timeout}'
47 48

- defaults:
49
    <<: *DEFAULTS
50 51 52
    name: reproducible_git
    triggers:
      - timed: '{my_timed}'
53
      - pollscm:
54
          cron: '{my_scmpoll}'
55
    publishers:
56 57
      - logparser: *logparser
      - email: *email
58
      - naginator: *naginator
59 60 61 62 63
    scm:
      - git:
          url: '{my_gitrepo}'
          branches:
            - master
64

65
- defaults:
66
    <<: *DEFAULTS
67
    name: reproducible_builder_trigger
68
    properties:
69 70 71
      - sidebar: *sb1
      - sidebar: *sb2
      - sidebar: *sb3
72 73
      - priority-sorter:
          priority: '150'
74 75 76
    wrappers:
      - timeout:
          timeout: 1560
77
    logrotate:
78
      daysToKeep: 3
79
      numToKeep: 150
80 81
      artifactDaysToKeep: -1
      artifactNumToKeep: -1
82
    publishers:
83
      - logparser: *logparser
84 85 86
      - email:
          recipients: '{my_recipients}'
          notify-every-unstable-build: false
87 88
      - trigger:
          project: '{my_trigger}'
89

90
- defaults:
91
    <<: *DEFAULTS
92 93
    name: reproducible_other_projects
    publishers:
94 95
      - logparser: &logparser-extra
          <<: *logparser
96
          parse-rules: '/srv/jenkins/logparse/reproducible-extra.rules'
97
      - email: *email
98

99 100 101 102
- defaults:
    <<: *DEFAULTS
    name: reproducible_other_projects_blocked
    publishers:
103
      - logparser: *logparser-extra
104 105 106 107 108 109 110
      - email: *email
    properties:
      - sidebar: *sb1
      - sidebar: *sb2
      - sidebar: *sb3
      - build-blocker:
          use-build-blocker: true
111 112
          blocking-jobs:
            - '{my_blocker}'
113

114
- defaults:
115
    <<: *DEFAULTS
116 117 118
    name: reproducible_other_projects_git
    triggers:
      - timed: '{my_timed}'
119
      - pollscm:
120
          cron: '{my_scmpoll}'
121 122
    publishers:
      - logparser:
123
          <<: *logparser
124
          parse-rules: '{my_parse_rules}'
125
      - email: *email
126
      - naginator: *naginator
127
    git_wipe_workspace: true    # j-j-b default
128 129 130 131
    scm:
      - git:
          url: '{my_gitrepo}'
          branches:
132
            - '{my_gitbranches}'
133
          wipe-workspace: '{git_wipe_workspace}'
134

135 136 137 138 139 140
- defaults:
    <<: *DEFAULTS
    name: reproducible_other_projects_git_blocked
    triggers:
      - timed: '{my_timed}'
      - pollscm:
141
          cron: '{my_scmpoll}'
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
    publishers:
      - logparser:
          <<: *logparser
          parse-rules: '{my_parse_rules}'
      - email: *email
      - naginator: *naginator
    scm:
      - git:
          url: '{my_gitrepo}'
          branches:
            - '{my_gitbranches}'
    properties:
      - sidebar: *sb1
      - sidebar: *sb2
      - sidebar: *sb3
      - build-blocker:
          use-build-blocker: true
159 160
          blocking-jobs:
            - '{my_blocker}'
161 162
    wrappers:
      - timeout:
163
          timeout: 2880
164

165 166 167 168 169 170
- defaults:
    <<: *DEFAULTS
    name: reproducible_other_projects_git_junit_exports
    triggers:
      - timed: '{my_timed}'
      - pollscm:
171
          cron: '{my_scmpoll}'
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
    publishers:
      - logparser:
          <<: *logparser
          parse-rules: '{my_parse_rules}'
      - email: *email
      - naginator: *naginator
      - junit:
          results: 'job-exports/test-results/*.xml'
          allow-empty-results: 'true'
    scm:
      - git:
          url: '{my_gitrepo}'
          branches:
            - '{my_gitbranches}'

187
- defaults:
188
    <<: *DEFAULTS
189
    name: reproducible_other_projects_trigger
190
    publishers:
191 192
      - logparser: *logparser-extra
      - email: *email
193 194 195 196
      - trigger:
          project: '{my_trigger}'

- defaults:
197
    <<: *DEFAULTS
198
    name: reproducible_other_projects_artifacts
199
    publishers:
200
      - logparser: *logparser-extra
201
      - archive:
202
          artifacts: 'results/*.*'
203
          latest-only: false
204
          allow-empty: true
205
      - email: *email
206 207
      - trigger:
          project: '{my_trigger}'
208
    properties:
209 210 211 212
      - build-blocker:
          use-build-blocker: true
          blocking-jobs:
            - '{my_blocker}'
213

214 215 216 217
- job-template:
    defaults: reproducible
    name: '{name}_{my_task}'

218 219
- job-template:
    defaults: reproducible
220
    name: '{name}_{my_task}_{my_arch}_{my_hname}'
221

222 223 224
- job-template:
    defaults: reproducible
    name: '{name}_setup_schroot_{my_distro}_{my_arch}_{my_hname}'
225
    my_disabled: true
226

227 228 229 230 231 232 233 234
- job-template:
    defaults: reproducible_git
    name: '{name}_html_{my_reponame}'

- job-template:
    defaults: reproducible_other_projects
    name: '{name}_{otherproject}'

235 236 237 238
- job-template:
    defaults: reproducible_other_projects_blocked
    name: '{name}_{otherproject_blocked}'

239 240 241 242
- job-template:
    defaults: reproducible_other_projects_git
    name: '{name}_{otherproject_git}'

243 244 245 246
- job-template:
    defaults: reproducible_other_projects_git_blocked
    name: '{name}_{otherproject_git_blocked}'

247 248 249 250
- job-template:
    defaults: reproducible_other_projects_git_junit_exports
    name: '{name}_{otherproject_git_junit_exports}'

251 252
- job-template:
    defaults: reproducible_other_projects_trigger
253
    name: '{name}_{otherproject_triggering}'
254

255
- job-template:
256 257
    defaults: reproducible_other_projects_artifacts
    name: '{name}_{otherproject_artifacts}'
258

259 260 261 262
- job-template:
    defaults: reproducible_builder_trigger
    name: '{name}_builder_{otherproject}_{my_num}'

263
- project:
Holger Levsen's avatar
Holger Levsen committed
264
    name: reproducible
265 266
    my_recipients: 'qa-jenkins-scm@lists.alioth.debian.org'
    my_node: '{my_hname}'
267
    my_naginator_regex: 'dummyshouldneverhappen'
268
    my_timeout: '720'
269
    jobs:
Philip Hands's avatar
Philip Hands committed
270 271 272
        - '{name}_{my_task}_{my_arch}_{my_hname}':
            my_task:
                - 'maintenance':
273
                    my_description: 'Do some maintenance: check for old files and directories, do backups, update chroots, etc.'
274
                    my_timed: '5 0,2,4,6,8,10,12,14,16,18,20,22 * * *'
275
            my_shell: '/srv/jenkins/bin/reproducible_maintenance.sh'
Philip Hands's avatar
Philip Hands committed
276
            my_hname:
277
                - 'jenkins':        { my_arch: 'amd64' }
278
            my_node: ''
279
        - '{name}_{my_task}_{my_arch}_{my_hname}':
280 281 282
            my_task:
                - 'node_health_check':
                    my_description: 'Do some health checks.'
283
                    my_timed: 'H/20 * * * *'
284
                    my_recipients: ''
285
                    my_timeout: '15'
286 287 288 289
            my_shell: '/srv/jenkins/bin/reproducible_node_health_check.sh'
            my_hname:
                - 'jenkins':        { my_arch: 'amd64' }
            my_node: ''
290

291
        - '{name}_{my_task}_{my_arch}_{my_hname}':
292 293
            my_task:
                - 'maintenance':
294
                    my_description: 'Do some maintenance: check for old files and directories, do backups, update chroots, etc.'
295
                    my_timed: '5 0,2,4,6,8,10,12,14,16,18,20,22 * * *'
Philip Hands's avatar
Philip Hands committed
296
            my_hname:
297
                - 'bbx15':          { my_arch: 'armhf' }
298
                - 'cbxi4a':         { my_arch: 'armhf' }
299
                - 'cbxi4b':         { my_arch: 'armhf' }
300
                - 'cbxi4pro0':      { my_arch: 'armhf' }
301
                - 'cb3a':           { my_arch: 'armhf' }
302 303
                - 'ff2a':           { my_arch: 'armhf' }
                - 'ff2b':           { my_arch: 'armhf' }
304
                - 'ff4a':           { my_arch: 'armhf' }
305
                - 'ff64a':          { my_arch: 'armhf' }
306
                - 'jtk1a':          { my_arch: 'armhf' }
307
                - 'jtk1b':          { my_arch: 'armhf' }
308
                - 'jtx1a':          { my_arch: 'armhf' }
309
                - 'jtx1b':          { my_arch: 'armhf' }
310
                - 'jtx1c':          { my_arch: 'armhf' }
311
                - 'odxu4a':         { my_arch: 'armhf' }
312
                - 'odxu4b':         { my_arch: 'armhf' }
313
                - 'odxu4c':         { my_arch: 'armhf' }
314 315 316 317 318 319 320
                - 'odu3a':          { my_arch: 'armhf' }
                - 'opi2a':          { my_arch: 'armhf' }
                - 'opi2b':          { my_arch: 'armhf' }
                - 'opi2c':          { my_arch: 'armhf' }
                - 'p64b':           { my_arch: 'armhf' }
                - 'p64c':           { my_arch: 'armhf' }
                - 'wbq0':           { my_arch: 'armhf' }
321 322 323 324
                - 'profitbricks1':  { my_arch: 'amd64' }
                - 'profitbricks2':  { my_arch: 'i386'  }
                - 'profitbricks5':  { my_arch: 'amd64' }
                - 'profitbricks6':  { my_arch: 'i386'  }
325
                - 'profitbricks9':  { my_arch: 'amd64' }
326
                - 'profitbricks10': { my_arch: 'amd64' }
327 328 329 330
                - 'profitbricks11': { my_arch: 'amd64' }
                - 'profitbricks12': { my_arch: 'i386'  }
                - 'profitbricks15': { my_arch: 'amd64' }
                - 'profitbricks16': { my_arch: 'i386'  }
331 332 333 334 335 336 337 338
                - 'osuosl167':      { my_arch: 'amd64' }
                - 'osuosl168':      { my_arch: 'amd64' }
                - 'osuosl169':      { my_arch: 'amd64' }
                - 'osuosl170':      { my_arch: 'amd64' }
                - 'osuosl171':      { my_arch: 'amd64' }
                - 'osuosl172':      { my_arch: 'amd64' }
                - 'osuosl173':      { my_arch: 'amd64' }
                - 'osuosl174':      { my_arch: 'amd64' }
339 340 341 342 343 344 345 346
                - 'codethink9':     { my_arch: 'arm64' }
                - 'codethink10':    { my_arch: 'arm64' }
                - 'codethink11':    { my_arch: 'arm64' }
                - 'codethink12':    { my_arch: 'arm64' }
                - 'codethink13':    { my_arch: 'arm64' }
                - 'codethink14':    { my_arch: 'arm64' }
                - 'codethink15':    { my_arch: 'arm64' }
                - 'codethink16':    { my_arch: 'arm64' }
347 348 349 350
            my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
        - '{name}_{my_task}_{my_arch}_{my_hname}':
            my_task:
                - 'node_health_check':
351
                    my_description: 'Do some health checks'
352
                    my_timed: 'H/15 * * * *'
353
                    my_recipients: ''
354
                    my_timeout: '15'
355 356 357 358 359 360 361 362 363
            my_hname:
                - 'bbx15':          { my_arch: 'armhf' }
                - 'cbxi4a':         { my_arch: 'armhf' }
                - 'cbxi4b':         { my_arch: 'armhf' }
                - 'cbxi4pro0':      { my_arch: 'armhf' }
                - 'cb3a':           { my_arch: 'armhf' }
                - 'ff2a':           { my_arch: 'armhf' }
                - 'ff2b':           { my_arch: 'armhf' }
                - 'ff4a':           { my_arch: 'armhf' }
364
                - 'ff64a':          { my_arch: 'armhf' }
365
                - 'jtk1a':          { my_arch: 'armhf' }
366
                - 'jtk1b':          { my_arch: 'armhf' }
367
                - 'jtx1a':          { my_arch: 'armhf' }
368
                - 'jtx1b':          { my_arch: 'armhf' }
369
                - 'jtx1c':          { my_arch: 'armhf' }
370
                - 'odxu4a':         { my_arch: 'armhf' }
371
                - 'odxu4b':         { my_arch: 'armhf' }
372
                - 'odxu4c':         { my_arch: 'armhf' }
373
                - 'odu3a':          { my_arch: 'armhf' }
374
                - 'opi2a':          { my_arch: 'armhf' }
375
                - 'opi2b':          { my_arch: 'armhf' }
376
                - 'opi2c':          { my_arch: 'armhf' }
377 378
                - 'p64b':           { my_arch: 'armhf' }
                - 'p64c':           { my_arch: 'armhf' }
379
                - 'wbq0':           { my_arch: 'armhf' }
380
                - 'profitbricks1':  { my_arch: 'amd64' }
381
                - 'profitbricks2':  { my_arch: 'i386'  }
382
                - 'profitbricks5':  { my_arch: 'amd64' }
383
                - 'profitbricks6':  { my_arch: 'i386'  }
384
                - 'profitbricks9':  { my_arch: 'amd64' }
385
                - 'profitbricks10': { my_arch: 'amd64' }
386
                - 'profitbricks11': { my_arch: 'amd64' }
387
                - 'profitbricks12': { my_arch: 'i386'  }
388
                - 'profitbricks15': { my_arch: 'amd64' }
389
                - 'profitbricks16': { my_arch: 'i386'  }
390 391 392 393 394 395 396 397
                - 'osuosl167':      { my_arch: 'amd64' }
                - 'osuosl168':      { my_arch: 'amd64' }
                - 'osuosl169':      { my_arch: 'amd64' }
                - 'osuosl170':      { my_arch: 'amd64' }
                - 'osuosl171':      { my_arch: 'amd64' }
                - 'osuosl172':      { my_arch: 'amd64' }
                - 'osuosl173':      { my_arch: 'amd64' }
                - 'osuosl174':      { my_arch: 'amd64' }
398 399 400 401 402 403 404 405
                - 'codethink9':     { my_arch: 'arm64' }
                - 'codethink10':    { my_arch: 'arm64' }
                - 'codethink11':    { my_arch: 'arm64' }
                - 'codethink12':    { my_arch: 'arm64' }
                - 'codethink13':    { my_arch: 'arm64' }
                - 'codethink14':    { my_arch: 'arm64' }
                - 'codethink15':    { my_arch: 'arm64' }
                - 'codethink16':    { my_arch: 'arm64' }
406
            my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
407

408
        - '{name}_{my_task}_{my_arch}_{my_hname}':
409
            my_task:
410
                - 'setup_pbuilder_stretch':
411
                    my_description: 'Setup pbuilder for reproducible builds of packages from stretch as described in https://wiki.debian.org/ReproducibleBuilds#Usage_example'
412
                    my_timed: '23 7 * * *'
413
                - 'setup_pbuilder_buster':
414
                    my_description: 'Setup pbuilder for reproducible builds of packages from buster as described in https://wiki.debian.org/ReproducibleBuilds#Usage_example'
415
                    my_timed: '23 8 * * *'
416
                - 'setup_pbuilder_unstable':
417
                    my_description: 'Setup pbuilder for reproducible builds of packages from unstable as described in https://wiki.debian.org/ReproducibleBuilds#Usage_example'
418
                    my_timed: '42 7 * * *'
419
                - 'setup_pbuilder_experimental':
420
                    my_description: 'Setup pbuilder for reproducible builds of packages from experimental as described in https://wiki.debian.org/ReproducibleBuilds#Usage_example'
421
                    my_timed: '33 7 * * *'
Philip Hands's avatar
Philip Hands committed
422
            my_hname:
423
                - 'bbx15':          { my_arch: 'armhf' }
424
                - 'cbxi4a':         { my_arch: 'armhf' }
425
                - 'cbxi4b':         { my_arch: 'armhf' }
426
                - 'cbxi4pro0':      { my_arch: 'armhf' }
427
                - 'cb3a':           { my_arch: 'armhf' }
428 429
                - 'ff2a':           { my_arch: 'armhf' }
                - 'ff2b':           { my_arch: 'armhf' }
430
                - 'ff4a':           { my_arch: 'armhf' }
431
                - 'ff64a':          { my_arch: 'armhf' }
432
                - 'jtk1a':          { my_arch: 'armhf' }
433
                - 'jtk1b':          { my_arch: 'armhf' }
434
                - 'jtx1a':          { my_arch: 'armhf' }
435
                - 'jtx1b':          { my_arch: 'armhf' }
436
                - 'jtx1c':          { my_arch: 'armhf' }
437
                - 'odxu4a':         { my_arch: 'armhf' }
438
                - 'odxu4b':         { my_arch: 'armhf' }
439
                - 'odxu4c':         { my_arch: 'armhf' }
440
                - 'odu3a':          { my_arch: 'armhf' }
441
                - 'opi2a':          { my_arch: 'armhf' }
442
                - 'opi2b':          { my_arch: 'armhf' }
443
                - 'opi2c':          { my_arch: 'armhf' }
444 445
                - 'p64b':           { my_arch: 'armhf' }
                - 'p64c':           { my_arch: 'armhf' }
446
                - 'wbq0':           { my_arch: 'armhf' }
447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462
                - 'profitbricks1':  { my_arch: 'amd64' }
                - 'profitbricks2':  { my_arch: 'i386'  }
                - 'profitbricks5':  { my_arch: 'amd64' }
                - 'profitbricks6':  { my_arch: 'i386'  }
                - 'profitbricks11': { my_arch: 'amd64' }
                - 'profitbricks12': { my_arch: 'i386'  }
                - 'profitbricks15': { my_arch: 'amd64' }
                - 'profitbricks16': { my_arch: 'i386'  }
                - 'codethink9':     { my_arch: 'arm64' }
                - 'codethink10':    { my_arch: 'arm64' }
                - 'codethink11':    { my_arch: 'arm64' }
                - 'codethink12':    { my_arch: 'arm64' }
                - 'codethink13':    { my_arch: 'arm64' }
                - 'codethink14':    { my_arch: 'arm64' }
                - 'codethink15':    { my_arch: 'arm64' }
                - 'codethink16':    { my_arch: 'arm64' }
463
            my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
464
            my_naginator_regex: '^E: Couldn.t download .*/Packages'
465

466 467 468
        - '{name}_setup_schroot_{my_distro}_{my_arch}_{my_hname}':
            my_distro:
                - 'unstable_diffoscope':
469
                    my_description: 'Setup schroot for running diffoscope in a unstable environment (this is needed to be able to correctly investigate haskell binaries...)'
Philip Hands's avatar
Philip Hands committed
470 471
                    my_timed: '42 0 * * *'
                    my_shell: '/srv/jenkins/bin/schroot-create.sh reproducible reproducible-unstable-diffoscope unstable diffoscope locales-all'
472
                    my_disabled: false
473
                - 'stretch_diffoscope':
474
                    my_description: 'Setup schroot for running diffoscope in a stretch environment (this is needed to be able to correctly investigate haskell binaries...)'
Philip Hands's avatar
Philip Hands committed
475
                    my_timed: '23 0 * * *'
476
                    my_shell: '/srv/jenkins/bin/schroot-create.sh reproducible reproducible-stretch-diffoscope stretch diffoscope locales-all'
477
                    my_disabled: false
478
                - 'buster_diffoscope':
479
                    my_description: 'Setup schroot for running diffoscope in a buster environment (this is needed to be able to correctly investigate haskell binaries...)'
480 481
                    my_timed: '23 0 * * *'
                    my_shell: '/srv/jenkins/bin/schroot-create.sh reproducible reproducible-buster-diffoscope buster diffoscope locales-all'
482
                    my_disabled: false
483
            my_description: 'Setup {my_distro} schroot for fetching source packages for the builder jobs.'
484
            my_shell: '/srv/jenkins/bin/schroot-create.sh reproducible reproducible-{my_distro} {my_distro}'
Philip Hands's avatar
Philip Hands committed
485
            my_hname:
486
                - 'jenkins':        { my_arch: 'amd64' }
487
            my_node: ''
488
            my_naginator_regex: '^E: Couldn.t download .*/Packages'
Philip Hands's avatar
Philip Hands committed
489

490 491 492 493 494
        - '{name}_{my_task}_{my_arch}_{my_hname}':
            my_task:
                - 'setup_schroot_unstable_diffoscope':
                    my_description: 'Setup schroot for running diffoscope in a unstable environment'
                    my_timed: '42 0 * * *'
495 496 497 498 499 500
                    my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
            my_hname:
                - 'osuosl171':  { my_arch: 'amd64' }
            my_naginator_regex: '^E: Couldn.t download .*/Packages'

        - '{name}_{my_task}_{my_arch}_{my_hname}':
501 502
            my_task:
                - 'setup_schroot_buster_diffoscope':
503
                    my_description: 'Setup schroot for running diffoscope in a buster environment'
504
                    my_timed: '42 0 * * *'
505 506 507
                    my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
            my_hname:
                - 'osuosl173':  { my_arch: 'amd64' }
508
            my_naginator_regex: '^E: Couldn.t download .*/Packages'
509 510 511 512 513

        - '{name}_{my_task}':
            my_task:
                - 'scheduler':
                    my_description: 'Schedule packages to be tested for reproducibility.'
514
                    # dinstall runs 1|7|13|19:52 UTC - see https://salsa.debian.org/ftp-team/dak/blob/master/config/debian/crontab
515
                    my_timed: '23 0,3,6,9,12,15,18,21 * * *'
516
                    my_shellext: ".py"
517 518
                - 'html_dashboard':
                    my_description: 'Generate HTML dashboard with graphs for reproducible builds.'
519
                    my_timed: '1 * * * *'
520 521
                - 'html_pkg_sets':
                    my_description: 'Generate HTML results (package sets with graphs) for reproducible builds.'
522
                    my_timed: '45 */2 * * *'
523
                    my_shellext: ".py"
524 525
                - 'html_indexes':
                    my_description: 'Generate HTML results (indexes) for reproducible builds.'
526
                    my_timed: '15 */2 * * *'
527
                    my_shellext: ".py"
528 529
                - 'html_dd_list':
                    my_description: 'Generate HTML results (dd-list) for reproducible builds.'
530
                    my_timed: '55 */4 * * *'
531
                    my_shellext: ".py"
532 533 534
                - 'html_all_packages':
                    my_description: 'Generate HTML results (for all packages) for reproducible builds. This job is rather redudant and just run to give a fuzzy warm feeling all pages are good.'
                    my_timed: '37 13 * * 1'
535
                    my_shellext: ".py"
536 537 538 539 540
                - 'html_repository_comparison':
                    my_description: 'Generate HTML results (repository_comparison) for reproducible builds.'
                    my_timed: '0 1 * * *'
                - 'html_breakages':
                    my_description: 'Generate an HTML page with CI issues (packages with incoherent status or files that should or should not be there).'
541
                    my_timed: '30 0 * * *'
542
                    my_shellext: ".py"
543 544 545 546 547
                - 'html_rsync_remote_results':
                    my_description: 'rsync the results from some remote jobs to the main node.'
                    my_timed: ''
                - 'html_live_status':
                    my_description: 'Generate an HTML page showing the live status of all builds happening or scheduled by humans.'
548
                    my_timed: 'H/15 * * * *'
549
                    my_shellext: ".py"
550
                - 'html_nodes_info':
551
                    my_description: 'Generate static HTML pages with various information about nodes and jenkins jobs.'
552
                    my_timed: '15 */3 * * *'
553 554 555
                - 'nodes_info':
                    my_description: 'Collect various information from build nodes used for reproducible builds.'
                    my_timed: '0 0 * * *'
556 557 558 559 560
                - 'create_meta_pkg_sets':
                    my_description: 'Create meta package sets for later consumption when generating HTML stats.'
                    my_timed: '0 6 * * H/3'
                - 'json':
                    my_description: 'Generate https://reproducible.debian.net/userContent/reproducible.json for consumption by tracker.debian.org.'
561
                    my_timed: '1 H/2 * * *'
562
                    my_shellext: ".py"
563
                - 'html_archlinux':
564 565
                    my_description: 'Build webpages for Arch Linux reproducibility tests'
                    my_timed: '15,45 * * * *'
566
                - 'archlinux_scheduler':
567
                    my_description: 'Scheduler for for Arch Linux reproducibility tests'
568
                    my_timed: '0 H/4 * * *'
569 570 571 572
                - 'html_fedora-23_x86_64':
                    my_description: 'Build a simple webpage for Fedora 23 reproducibility tests'
                    my_timed: ''
                    my_shell: '/srv/jenkins/bin/reproducible_html_rpms.sh fedora-23 x86_64'
Holger Levsen's avatar
Holger Levsen committed
573
                - 'diffoscope_pypi':
574 575
                    my_description: 'Test whether PyPI has the latest diffoscope.'
                    my_timed: '23 23 * * *'
576
                    my_shell: '/srv/jenkins/bin/diffoscope_distribution_test.sh PyPI'
577
                    my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org'
578 579
                - 'diffoscope_freebsd':
                    my_description: 'Test whether FreeBSD has the latest diffoscope.'
580
                    my_timed: '25 23 * * 1'
581 582 583
                    my_shell: '/srv/jenkins/bin/diffoscope_distribution_test.sh FreeBSD'
                - 'diffoscope_netbsd':
                    my_description: 'Test whether NetBSD has the latest diffoscope.'
584
                    my_timed: '27 23 * * 1'
585 586 587
                    my_shell: '/srv/jenkins/bin/diffoscope_distribution_test.sh NetBSD'
                - 'diffoscope_macports':
                    my_description: 'Test whether MacPorts has the latest diffoscope.'
588
                    my_timed: '29 23 * * 1'
589
                    my_shell: '/srv/jenkins/bin/diffoscope_distribution_test.sh MacPorts'
590 591
                - 'diffoscope_archlinux':
                    my_description: 'Test whether Arch Linux has the latest diffoscope.'
592
                    my_timed: '31 23 * * 1'
593
                    my_shell: '/srv/jenkins/bin/diffoscope_distribution_test.sh Arch'
Holger Levsen's avatar
Holger Levsen committed
594
                - 'compare_Debian_sha1sums':
595
                    my_description: 'Compare sha1sums of Debian binary packages with rebuild ones'
596
                    my_timed: '55 23 * * *'
597
                    my_hname: 'osuosl173'
598
                    my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
599
                - 'compare_Debian_sha1sums_forward_runner':
600
                    my_description: 'Fetch .buildinfo files of Debian binary packages (in reverse order)'
601
                    my_timed: '56 * * * *'
602
                    my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
603
                    my_hname: 'osuosl173'
604
                - 'compare_Debian_sha1sums_reverse_runner':
605
                    my_description: 'Fetch .buildinfo files of Debian binary packages (in reverse order)'
606
                    my_timed: '56 * * * *'
607
                    my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
608
                    my_hname: 'osuosl173'
609
                - 'compare_Debian_sha1sums_random_runner_1':
610
                    my_description: 'Fetch .buildinfo files of Debian binary packages (in random order)'
611
                    my_timed: '56 * * * *'
612
                    my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
613
                    my_hname: 'osuosl173'
614
                - 'compare_Debian_sha1sums_random_runner_2':
615
                    my_description: 'Fetch .buildinfo files of Debian binary packages (in random order)'
616
                    my_timed: '56 * * * *'
617
                    my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
618
                    my_hname: 'osuosl173'
619 620
            my_shellext: ".sh"
            my_shell: '/srv/jenkins/bin/reproducible_{my_task}{my_shellext}'
621
            my_hname: ''
622

623 624 625
        - '{name}_html_{my_reponame}':
            my_reponame:
                - 'notes':
626
                    my_description: 'Generate HTML results ({my_reponame}) for reproducible builds, triggered by changes to the <a href="{my_gitrepo}" target="_blank">{my_reponame}.git</a> repository.'
627 628
                    my_timed: '57 0 * * *'
                    my_shell: '/srv/jenkins/bin/reproducible_{my_reponame}.py && /srv/jenkins/bin/reproducible_html_{my_reponame}.py'
629
                    my_gitrepo: 'https://salsa.debian.org/reproducible-builds/reproducible-notes.git'
630
                - 'source-date-epoch-spec':
631
                    my_description: 'Generate the HTML of the reproducible builds SOURCE_DATE_EPOCH specification, triggered by changes to the <a href="{my_gitrepo}" target="_blank">{my_reponame}.git</a> repository.'
632 633
                    my_timed: ''
                    my_shell: '/srv/jenkins/bin/reproducible_html_specs.sh {my_reponame}'
634
                - 'build-path-prefix-map-spec':
635
                    my_description: 'Generate the HTML of the reproducible builds BUILD_PATH_PREFIX_MAP specification, triggered by changes to the <a href="{my_gitrepo}" target="_blank">{my_reponame}.git</a> repository.'
636 637
                    my_timed: ''
                    my_shell: '/srv/jenkins/bin/reproducible_html_specs.sh {my_reponame}'
638
            my_gitrepo: 'https://salsa.debian.org/reproducible-builds/specs/{my_reponame}.git'
639
            my_hname: ''
640
            my_naginator_regex: 'Caused by: hudson.plugins.git.GitException: Command "git fetch'
641
            my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org'
642

643 644
        - '{name}_{otherproject_artifacts}':
            otherproject_artifacts:
645
                - 'openwrt-target-ar71xx':
646
                    my_timed: '42 21 * * 2,4,6'
647 648 649
                    my_openwrt_config: 'CONFIG_TARGET_ar71xx=y'
                    my_openwrt_target: 'ar71xx'
                - 'openwrt-target-ramips':
650
                    my_timed: '42 23 * * 2,4,6'
651 652 653
                    my_openwrt_config: 'CONFIG_TARGET_ramips=y'
                    my_openwrt_target: 'ramips'
                - 'openwrt-target-x86':
654
                    my_timed: '42 1 * * 1,3,5'
655 656 657 658
                    my_openwrt_config: 'CONFIG_TARGET_x86=y'
                    my_openwrt_target: 'x86'
            my_description: 'Rebuild OpenWrt (one target, some packages) twice (with variations) and investigate regarding reproducibility.'
            my_shell: '/srv/jenkins/bin/reproducible_openwrt.sh master {my_openwrt_target} {my_openwrt_config}'
659
            my_trigger: ''
660
            my_hname: ''
661
            my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org lynxis@fe80.eu'
662
            my_blocker: '^reproducible_openwrt.*'
663
            my_timeout: '1440'
664 665 666 667 668

        - '{name}_{otherproject_triggering}':
            otherproject_triggering:
                - 'coreboot':
                    my_description: 'Rebuild all coreboot ROMs twice (with variations) and investigate regarding reproducibility.'
669
                    my_timed: '42 10 * * 1,3,5'
670
                    my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org lynxis@fe80.eu'
671 672
                - 'netbsd':
                    my_description: 'Rebuild NetBSD (for some archs) twice (with variations) and investigate regarding reproducibility.'
673
                    my_timed: '42 16 * * 1,3,5'
674
            my_trigger: 'reproducible_html_rsync_remote_results'
675
            my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
676
            my_hname: 'osuosl171'
677
            my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org'
678
            my_timeout: '1440'
679 680 681 682 683 684

        - '{name}_{otherproject}':
            otherproject:
                - 'freebsd':
                    my_description: 'Rebuild FreeBSD twice (with variations) and investigate regarding reproducibility.'
                    my_timed: '42 23 * * 4'
685
                    my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org'
686
                    my_shell: '/srv/jenkins/bin/reproducible_freebsd.sh'
687
                - 'setup_schroot_archlinux_jenkins':
688
                    my_description: 'Setup an Arch Linux schroot to test Arch Linux packages for reproducibility.'
689 690
                    my_timed: '42 23 1 1 *'
                    my_shell: '/srv/jenkins/bin/reproducible_setup_archlinux_schroot.sh'
691 692 693 694 695 696 697 698
                - 'setup_schroot_archlinux_osuosl169':
                    my_description: 'Setup an Arch Linux schroot to test Arch Linux packages for reproducibility.'
                    my_timed: '42 23 1 1 *'
                    my_hname: 'osuosl169'
                - 'setup_schroot_archlinux_osuosl170':
                    my_description: 'Setup an Arch Linux schroot to test Arch Linux packages for reproducibility.'
                    my_timed: '42 23 1 1 *'
                    my_hname: 'osuosl170'
699 700 701 702
                - 'setup_mock_fedora-23_x86_64_jenkins':
                    my_description: 'Setup mock for fedora-23 on X86_64 to test .rpm packages for reproducibility.'
                    my_timed: '42 23 1 1 *'
                    my_shell: '/srv/jenkins/bin/reproducible_setup_mock.sh fedora-23 x86_64'
703
                    my_disabled: true
704
                - 'setup_mock_fedora-23_x86_64_osuosl171':
705 706
                    my_description: 'Setup mock for fedora-23 on X86_64 to test .rpm packages for reproducibility.'
                    my_timed: '42 23 1 1 *'
707
                    my_hname: 'osuosl171'
708
                    my_disabled: true
709
                - 'setup_mock_fedora-23_x86_64_osuosl172':
710 711
                    my_description: 'Setup mock for fedora-23 on X86_64 to test .rpm packages for reproducibility.'
                    my_timed: '42 23 1 1 *'
712
                    my_hname: 'osuosl172'
713
                    my_disabled: true
714 715 716
                - 'opensuse_import_json':
                    my_description: 'Import the status json'
                    my_timed: 'H H * * H'
717
                    my_shell: 'cd /srv/jenkins/bin/ && ./reproducible_opensuse_import_json.py && ./reproducible_html_indexes.py --distro opensuse && ./reproducible_html_all_packages.py --distro opensuse --ignore-missing-files'
718
                    my_recipients: 'jenkins+reproducible-builds bernhard+debianjenkins@lsmod.de qa-jenkins-scm@lists.alioth.debian.org'
719 720
            my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
            my_hname: ''
721
            my_timeout: '1440'
722 723 724

        - '{name}_{otherproject_blocked}':
            otherproject_blocked:
725
                - 'setup_fdroid_build_environment':
726
                    my_description: 'Setup a build environment for F-Droid.'
727
                    my_timed: '42 0 * * 1,3,5'
728
                    my_hname: 'osuosl168'
729
                    my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org hans@guardianproject.info michael.poehn@fsfe.org bubu@bubu1.eu'
730
                    my_blocker: '^reproducible.*fdroid.*'
731
            my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
732 733 734 735 736

        - '{name}_{otherproject_git_blocked}':
            otherproject_git_blocked:
                - 'fdroid_build_apps':
                    my_description: 'Build all the latest apps for F-Droid.'
737
                    my_timed: '42 7 * * *'
738 739 740
                - 'fdroid_test':
                    my_description: 'Run tests on all the built APKs for F-Droid.'
                    my_timed: '42 23 1 1 *'
741
            my_hname: 'osuosl168'
742 743 744 745
            my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org hans@guardianproject.info michael.poehn@fsfe.org'
            my_blocker: '^reproducible_fdroid.*'
            my_gitrepo: 'https://gitlab.com/fdroid/fdroidserver.git'
            my_scmpoll: '*/6 * * * *'
746 747
            my_gitbranches: 'master'
            my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh'
748
            my_parse_rules: '/srv/jenkins/logparse/reproducible-extra.rules'
749
            my_naginator_regex: 'Caused by: hudson.plugins.git.GitException: Command "git fetch'
750 751 752

        - '{name}_{otherproject_git}':
            otherproject_git:
753 754 755
                - 'reprotest_from_git_master':
                    my_description: 'Build reprotest Debian package from git branch master.'
                    my_timed: '42 23 1 1 *'
756
                    my_gitrepo: 'https://salsa.debian.org/reproducible-builds/reprotest.git'
757 758 759
                    my_gitbranches: 'origin/master'
                    my_shell: '/srv/jenkins/bin/chroot-run.sh sid debuild -uc -us'
                    my_parse_rules: '/srv/jenkins/logparse/debian-pkg-ci.rules'
760 761 762
                - 'strip-nondeterminism_from_git_master':
                    my_description: 'Build strip-nondeterminism Debian package from git branch master.'
                    my_timed: '42 23 1 1 *'
763
                    my_gitrepo: 'https://salsa.debian.org/reproducible/strip-nondeterminism.git'
764
                    my_gitbranches: 'origin/master'
765
                    my_shell: '/srv/jenkins/bin/chroot-run.sh sid gbp buildpackage -uc -us --git-upstream-branch=master --git-debian-branch=debian'
766 767 768 769
                    my_parse_rules: '/srv/jenkins/logparse/debian-pkg-ci.rules'
                - 'disorderfs_from_git_master':
                    my_description: 'Build disorderfs Debian package from git branch master.'
                    my_timed: '42 23 1 1 *'
770
                    my_gitrepo: 'https://salsa.debian.org/reproducible-builds/disorderfs.git'
771
                    my_gitbranches: 'origin/master'
772
                    my_shell: '/srv/jenkins/bin/chroot-run.sh sid gbp buildpackage -uc -us --git-upstream-branch=master --git-debian-branch=debian'
773
                    my_parse_rules: '/srv/jenkins/logparse/debian-pkg-ci.rules'
774
                - 'builds_website':
775
                    my_description: 'Build https://reproducible-builds.org on every git commit to {my_gitrepo} with jekyll.'
776
                    my_timed: ''
777
                    my_gitrepo: 'https://salsa.debian.org/reproducible-builds/reproducible-website.git'
778
                    my_gitbranches: 'origin/master'
779
                    my_shell: 'jekyll build -I -s . -d /srv/reproducible-builds.org/www'
780 781 782 783
                - 'builds_style_guide':
                    my_description: 'Build https://reproducible-builds.org/style on every git commit to {my_gitrepo} with jekyll'
                    my_gitrepo: 'https://salsa.debian.org/reproducible-builds/reproducible-styleguide.git'
                    my_timed: ''
784
                    my_shell: 'mkdir -pv /srv/reproducible-builds.org/style && jekyll build -I -s . -d /srv/reproducible-builds.org/style'
785
                - 'builds_diffoscope_website':
786
                    my_description: 'Build https://diffoscope.org/ on every git commit to {my_gitrepo}'
787 788 789
                    my_timed: ''
                    my_gitrepo: 'https://salsa.debian.org/reproducible-builds/diffoscope-website.git'
                    my_gitbranches: 'origin/master'
790
                    my_shell: 'mkdir -pv /srv/diffoscope.org/www && jekyll build -I -s . -d /srv/diffoscope.org/www'
791 792 793 794
                - 'sync_lfs_files':
                    my_description: 'Pull big files from https://salsa.debian.org/reproducible-builds/reproducible-lfs so we can serve them from here'
                    my_timed: ''
                    my_gitrepo: 'https://salsa.debian.org/reproducible-builds/reproducible-lfs.git'
795
                    git_wipe_workspace: false   # can't do it as it would otherwise take too much to checkout/clone
796
                    my_shell: '/srv/jenkins/bin/reproducible_sync_lfs.sh'
797
            my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org'
798
            my_parse_rules: '/srv/jenkins/logparse/reproducible-extra.rules'
799
            my_hname: ''
800
            my_naginator_regex: 'Caused by: hudson.plugins.git.GitException: Command "git fetch'
801

802 803 804 805 806 807 808 809 810
        - '{name}_{otherproject_git_junit_exports}':
            otherproject_git_junit_exports:
             - 'diffoscope_from_git_master':
                my_description: 'Build diffoscope Debian package from git branch master.'
                my_gitbranches: 'origin/master'
             - 'diffoscope_from_git_branches':
                my_description: 'Build diffoscope Debian package from git branches other than master.'
                my_gitbranches: ':^(?!origin/master$).*'
            my_timed: '42 23 1 1 *'
811
            my_gitrepo: 'https://salsa.debian.org/reproducible-builds/diffoscope.git'
812
            my_hname: ''
813
            my_shell: '/srv/jenkins/bin/chroot-run.sh sid --exports-results debuild -e JENKINS_EXPORTS_DIR -uc -us'
814 815
            my_parse_rules: '/srv/jenkins/logparse/debian-pkg-ci.rules'
            my_recipients: 'jenkins+debian-reproducible qa-jenkins-scm@lists.alioth.debian.org'
816 817 818 819 820
        - '{name}_builder_{otherproject}_{my_num}':
            otherproject:
                - 'archlinux':
                    my_num: 1
                    op_descname: 'an Arch Linux'
821
                    my_disabled: false
822 823 824
                - 'archlinux':
                    my_num: 2
                    op_descname: 'an Arch Linux'
825
                    my_disabled: false
826 827 828
                - 'archlinux':
                    my_num: 3
                    op_descname: 'an Arch Linux'
829
                    my_disabled: false
830 831 832
                - 'archlinux':
                    my_num: 4
                    op_descname: 'an Arch Linux'
833
                    my_disabled: false
834 835 836 837 838 839 840 841
                - 'archlinux':
                    my_num: 5
                    op_descname: 'an Arch Linux'
                    my_disabled: false
                - 'archlinux':
                    my_num: 6
                    op_descname: 'an Arch Linux'
                    my_disabled: false
842 843 844 845
                - 'fedora-23_x86_64':
                    my_num: 1
                    op_descname: 'a Fedora 23'
                    my_shell: '/srv/jenkins/bin/reproducible_build_rpm.sh fedora-23 x86_64'
846 847 848 849
                - 'fedora-23_x86_64':
                    my_num: 2
                    op_descname: 'a Fedora 23'
                    my_shell: '/srv/jenkins/bin/reproducible_build_rpm.sh fedora-23 x86_64'
850
                    my_trigger: 'reproducible_html_{otherproject}'
851 852
                # when you add another fedora builder here
                # the loop in bin/reproducible_setup_mock.sh needs to be increased too
853
            my_description: 'Try to reproducibly build {op_descname} package.'
854
            my_shell: '/srv/jenkins/bin/reproducible_build_{otherproject}_pkg.sh'
855
            my_timed: '* * * * *'
856
            my_trigger: ''
857
            my_hname: ''
858
            my_disabled: true
859