- defaults: name: reproducible disabled: {my_disabled} project-type: freestyle properties: - sidebar: &sb1 url: https://jenkins.debian.net/userContent/about.html text: About jenkins.debian.net icon: /userContent/images/debian-swirl-24x24.png - sidebar: &sb2 url: https://jenkins.debian.net/view/reproducible text: reproducible builds jobs icon: /userContent/images/debian-jenkins-24x24.png - sidebar: &sb3 url: http://www.profitbricks.co.uk text: Sponsored by Profitbricks icon: /userContent/images/profitbricks-24x24.png description: &desc '{my_description}
Job configuration source is reproducible.yaml.
Results are available at https://tests.reproducible-builds.org.' triggers: - timed: '{my_timed}' logrotate: daysToKeep: 90 numToKeep: 150 artifactDaysToKeep: -1 artifactNumToKeep: -1 builders: - shell: '{my_shell}' publishers: - logparser: &logparse parse-rules: '/srv/jenkins/logparse/reproducible.rules' unstable-on-warning: 'true' fail-on-error: 'true' - email: recipients: '{my_recipients}' node: '{my_node}' - defaults: name: reproducible_git disabled: false project-type: freestyle properties: - sidebar: *sb1 - sidebar: *sb2 - sidebar: *sb3 description: *desc triggers: - timed: '{my_timed}' - pollscm: cron: '{my_scmpoll}' logrotate: daysToKeep: 90 numToKeep: 150 artifactDaysToKeep: -1 artifactNumToKeep: -1 builders: - shell: '{my_shell}' publishers: - logparser: *logparse - email: recipients: '{my_recipients}' - naginator: progressive-delay-increment: 5 progressive-delay-maximum: 15 max-failed-builds: 5 regular-expression: 'Caused by: hudson.plugins.git.GitException: Command "git fetch' scm: - git: url: '{my_gitrepo}' branches: - master node: '{my_node}' - defaults: name: reproducible_builder disabled: false project-type: freestyle description: *desc properties: - sidebar: *sb1 - sidebar: *sb2 - sidebar: *sb3 - priority-sorter: priority: '150' - throttle: max-total: 180 max-per-node: 180 enabled: true option: category categories: - reproducible triggers: - timed: '{my_timed}' wrappers: - timeout: timeout: 2640 # (24+18+2)*60 logrotate: daysToKeep: 3 numToKeep: 300 artifactDaysToKeep: -1 artifactNumToKeep: -1 builders: - shell: '{my_shell}' publishers: - email: recipients: '{my_recipients}' notify-every-unstable-build: false node: '{my_node}' - defaults: name: reproducible_builder_trigger disabled: false project-type: freestyle description: *desc properties: - sidebar: *sb1 - sidebar: *sb2 - sidebar: *sb3 - priority-sorter: priority: '150' triggers: - timed: '{my_timed}' wrappers: - timeout: timeout: 1560 logrotate: daysToKeep: 3 numToKeep: 300 artifactDaysToKeep: -1 artifactNumToKeep: -1 builders: - shell: '{my_shell}' publishers: - logparser: *logparse - email: recipients: '{my_recipients}' notify-every-unstable-build: false - trigger: project: '{my_trigger}' node: '{my_node}' - defaults: name: reproducible_other_projects disabled: false project-type: freestyle description: *desc properties: - sidebar: *sb1 - sidebar: *sb2 - sidebar: *sb3 triggers: - timed: '{my_timed}' logrotate: daysToKeep: 90 numToKeep: 150 artifactDaysToKeep: -1 artifactNumToKeep: -1 builders: - shell: '{my_shell}' publishers: - logparser: parse-rules: '/srv/jenkins/logparse/reproducible-extra.rules' unstable-on-warning: 'true' fail-on-error: 'true' - email: recipients: '{my_recipients}' node: '{my_node}' - defaults: name: reproducible_other_projects_git disabled: false project-type: freestyle description: *desc properties: - sidebar: *sb1 - sidebar: *sb2 - sidebar: *sb3 triggers: - timed: '{my_timed}' - pollscm: cron: '*/6 * * * *' logrotate: daysToKeep: 90 numToKeep: 150 artifactDaysToKeep: -1 artifactNumToKeep: -1 builders: - shell: '{my_shell}' publishers: - logparser: parse-rules: '{my_parse_rules}' unstable-on-warning: 'true' fail-on-error: 'true' - email: recipients: '{my_recipients}' - naginator: progressive-delay-increment: 5 progressive-delay-maximum: 15 max-failed-builds: 5 regular-expression: 'Caused by: hudson.plugins.git.GitException: Command "git fetch' scm: - git: url: '{my_gitrepo}' branches: - '{my_gitbranches}' node: '{my_node}' - defaults: name: reproducible_other_projects_trigger disabled: false project-type: freestyle description: *desc properties: - sidebar: *sb1 - sidebar: *sb2 - sidebar: *sb3 triggers: - timed: '{my_timed}' logrotate: daysToKeep: 90 numToKeep: 150 artifactDaysToKeep: -1 artifactNumToKeep: -1 builders: - shell: '{my_shell}' publishers: - logparser: parse-rules: '/srv/jenkins/logparse/reproducible-extra.rules' unstable-on-warning: 'true' fail-on-error: 'true' - email: recipients: '{my_recipients}' - trigger: project: '{my_trigger}' node: '{my_node}' - defaults: name: reproducible_other_projects_artifacts disabled: false project-type: freestyle description: *desc properties: - sidebar: *sb1 - sidebar: *sb2 - sidebar: *sb3 - throttle: max-total: 9 max-per-node: 9 enabled: true option: category categories: - reproducible # no special category yet triggers: - timed: '{my_timed}' logrotate: daysToKeep: 90 numToKeep: 150 artifactDaysToKeep: -1 artifactNumToKeep: -1 builders: - shell: '{my_shell}' publishers: - logparser: parse-rules: '/srv/jenkins/logparse/reproducible-extra.rules' unstable-on-warning: 'true' fail-on-error: 'true' - archive: artifacts: 'results/*.*' latest-only: false allow-empty: true - email: recipients: '{my_recipients}' - trigger: project: '{my_trigger}' node: '{my_node}' - job-template: defaults: reproducible name: '{name}_{my_task}' - job-template: defaults: reproducible name: '{name}_{my_task}_{my_arch}_{my_hname}' - job-template: defaults: reproducible name: '{name}_setup_schroot_{my_distro}_{my_arch}_{my_hname}' - job-template: defaults: reproducible_builder name: '{name}_builder_{my_arch}_{my_num}' - job-template: defaults: reproducible_git name: '{name}_html_{my_reponame}' - job-template: defaults: reproducible_other_projects name: '{name}_{otherproject}' - job-template: defaults: reproducible_other_projects_git name: '{name}_{otherproject_git}' - job-template: defaults: reproducible_other_projects_trigger name: '{name}_{otherproject_triggering}' - job-template: defaults: reproducible_other_projects_artifacts name: '{name}_{otherproject_artifacts}' - job-template: defaults: reproducible_builder_trigger name: '{name}_builder_{otherproject}_{my_num}' - project: name: reproducible my_recipients: 'qa-jenkins-scm@lists.alioth.debian.org' my_node: '{my_hname}' my_scmpoll: '*/6 * * * *' my_disabled: false jobs: - '{name}_{my_task}_{my_arch}_{my_hname}': my_task: - 'maintenance': my_description: 'Do some maintenance: check for old directories laying around, do backups, update pbuilder and schroots, etc.' my_timed: '5 0,2,4,6,8,10,12,14,16,18,20,22 * * *' my_shell: '/srv/jenkins/bin/reproducible_maintenance.sh' my_hname: - 'jenkins': { my_arch: 'amd64' } my_node: '' - '{name}_{my_task}_{my_arch}_{my_hname}': my_task: - 'maintenance': my_description: 'Do some maintenance: check for old directories laying around, do backups, update pbuilder and schroots, etc.' my_timed: '5 0,2,4,6,8,10,12,14,16,18,20,22 * * *' my_hname: - 'bbx15': { my_arch: 'armhf' } - 'bpi0': { 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' } - 'hb0': { my_arch: 'armhf' } - 'jtk1a': { my_arch: 'armhf' } - 'wbq0': { my_arch: 'armhf' } - 'odxu4': { my_arch: 'armhf' } - 'odxu4b': { my_arch: 'armhf' } - 'odxu4c': { my_arch: 'armhf' } - 'odu3a': { my_arch: 'armhf' } - 'opi2a': { my_arch: 'armhf' } - 'opi2b': { my_arch: 'armhf' } - 'opi2c': { my_arch: 'armhf' } - 'wbd0': { my_arch: 'armhf' } - 'rpi2b': { my_arch: 'armhf' } - 'rpi2c': { my_arch: 'armhf' } - 'profitbricks1': { my_arch: 'amd64' } - 'profitbricks2': { my_arch: 'i386' } - 'profitbricks3': { my_arch: 'amd64' } - 'profitbricks4': { my_arch: 'amd64' } - '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' } my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh' - '{name}_{my_task}_{my_arch}_{my_hname}': my_task: - 'setup_pbuilder_testing': my_description: 'Setup pbuilder for reproducible builds of packages from testing as described in https://wiki.debian.org/ReproducibleBuilds#Usage_example' my_timed: '23 7 * * *' - 'setup_pbuilder_unstable': my_description: 'Setup pbuilder for reproducible builds of packages from testing as described in https://wiki.debian.org/ReproducibleBuilds#Usage_example' my_timed: '42 7 * * *' - 'setup_pbuilder_experimental': my_description: 'Setup pbuilder for reproducible builds of packages from experimental as described in https://wiki.debian.org/ReproducibleBuilds#Usage_example' my_timed: '33 7 * * *' - 'setup_schroot_unstable': my_description: 'Setup unstable schroot for fetching source packages for the builder jobs.' my_timed: '20 1 * * *' - 'setup_schroot_testing': my_description: 'Setup testing schroot for fetching source packages for the builder jobs.' my_timed: '0 1 * * *' - 'setup_schroot_experimental': my_description: 'Setup experimental schroot for fetching source packages for the builder jobs.' my_timed: '40 1 * * *' my_hname: - 'bbx15': { my_arch: 'armhf' } - 'bpi0': { 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' } - 'hb0': { my_arch: 'armhf' } - 'jtk1a': { my_arch: 'armhf' } - 'wbq0': { my_arch: 'armhf' } - 'odxu4': { my_arch: 'armhf' } - 'odxu4b': { my_arch: 'armhf' } - 'odxu4c': { my_arch: 'armhf' } - 'odu3a': { my_arch: 'armhf' } - 'opi2a': { my_arch: 'armhf' } - 'opi2b': { my_arch: 'armhf' } - 'opi2c': { my_arch: 'armhf' } - 'wbd0': { my_arch: 'armhf' } - 'rpi2b': { my_arch: 'armhf' } - 'rpi2c': { my_arch: 'armhf' } - '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' } my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh' - '{name}_setup_schroot_{my_distro}_{my_arch}_{my_hname}': my_distro: - 'unstable_diffoscope': my_description: 'Setup schroot for running diffoscope in a unstable environment (this is needed to be able to correctly investigate haskell binaries...)' my_timed: '42 0 * * *' my_shell: '/srv/jenkins/bin/schroot-create.sh reproducible reproducible-unstable-diffoscope unstable diffoscope locales-all' - 'testing_diffoscope': my_description: 'Setup schroot for running diffoscope in a testing environment (this is needed to be able to correctly investigate haskell binaries...)' my_timed: '23 0 * * *' my_shell: '/srv/jenkins/bin/schroot-create.sh reproducible reproducible-testing-diffoscope testing diffoscope locales-all' - 'unstable': my_timed: '42 1 * * *' my_shell: '/srv/jenkins/bin/schroot-create.sh reproducible reproducible-{my_distro} {my_distro} botch' - 'testing': my_timed: '42 1 * * *' - 'experimental': my_timed: '33 1 * * *' my_description: 'Setup {my_distro} schroot for fetching source packages for the builder jobs.' my_shell: '/srv/jenkins/bin/schroot-create.sh reproducible reproducible-{my_distro} {my_distro}' my_hname: - 'jenkins': { my_arch: 'amd64' } my_node: '' - '{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 * * *' my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh' my_hname: - 'profitbricks3': { my_arch: 'amd64' } - '{name}_{my_task}': my_task: - 'scheduler': my_description: 'Schedule packages to be tested for reproducibility.' my_timed: '55 */3 * * *' my_shellext: ".py" - 'html_dashboard': my_description: 'Generate HTML dashboard with graphs for reproducible builds.' my_timed: '*/10 * * * *' - 'html_pkg_sets': my_description: 'Generate HTML results (package sets with graphs) for reproducible builds.' my_timed: '*/15 * * * *' my_shellext: ".py" - 'html_indexes': my_description: 'Generate HTML results (indexes) for reproducible builds.' my_timed: '*/15 * * * *' my_shellext: ".py" - 'html_dd_list': my_description: 'Generate HTML results (dd-list) for reproducible builds.' my_timed: '55 */2 * * *' my_shellext: ".py" - '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' my_shellext: ".py" - '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).' my_timed: '30 0,12 * * *' my_shellext: ".py" - '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.' my_timed: 'H/6 * * * *' my_shellext: ".py" - 'create_meta_pkg_sets': my_description: 'Create meta package sets for later consumption when generating HTML stats.' my_timed: '0 6 * * H/3' - 'nodes_info': my_description: 'Collect various information from build nodes used for reproducible builds.' my_timed: '0 0 * * *' - 'json': my_description: 'Generate https://reproducible.debian.net/userContent/reproducible.json for consumption by tracker.debian.org.' my_timed: '1 * * * *' my_shellext: ".py" - 'html_archlinux': my_description: 'Build a simple webpage for Arch Linux reproducibility tests' my_timed: '' my_disabled: true - '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' - 'diffoscope_pypi': my_description: 'Test whether PyPI has the latest diffoscope.' my_timed: '23 23 * * *' my_shell: '/srv/jenkins/bin/diffoscope_distribution_test.sh PyPI' - 'diffoscope_freebsd': my_description: 'Test whether FreeBSD has the latest diffoscope.' my_timed: '25 23 1 * *' my_shell: '/srv/jenkins/bin/diffoscope_distribution_test.sh FreeBSD' - 'diffoscope_netbsd': my_description: 'Test whether NetBSD has the latest diffoscope.' my_timed: '27 23 1 * *' my_shell: '/srv/jenkins/bin/diffoscope_distribution_test.sh NetBSD' - 'diffoscope_macports': my_description: 'Test whether MacPorts has the latest diffoscope.' my_timed: '29 23 1 * *' my_shell: '/srv/jenkins/bin/diffoscope_distribution_test.sh MacPorts' my_shellext: ".sh" my_shell: '/srv/jenkins/bin/reproducible_{my_task}{my_shellext}' my_hname: '' - '{name}_html_{my_reponame}': my_reponame: - 'notes': my_description: 'Generate HTML results ({my_reponame}) for reproducible builds, triggered by changes to the {my_reponame}.git repository.' my_timed: '57 0 * * *' my_scmpoll: 'H/1 H/1 * * *' my_shell: '/srv/jenkins/bin/reproducible_{my_reponame}.py && /srv/jenkins/bin/reproducible_html_{my_reponame}.py' - 'source-date-epoch-spec': my_description: 'Generate the HTML of the reproducible builds SOURCE_DATE_EPOCH specification, triggered by changes to the {my_reponame}.git repository.' my_timed: '' my_shell: '/srv/jenkins/bin/reproducible_html_specs.sh {my_reponame}' my_recipients: 'jenkins+debian-reproducible qa-jenkins-scm@lists.alioth.debian.org' my_gitrepo: 'git://git.debian.org/git/reproducible/{my_reponame}.git' my_hname: '' - '{name}_builder_{my_arch}_{my_num}': my_description: 'Try to reproducibly build a scheduled package. This is one of several builder jobs.' my_arch: 'amd64' my_num: - '1': &builders_1_5 { my_node1: 'profitbricks-build1', my_node2: 'profitbricks-build5' } - '2': &builders_5_1 { my_node1: 'profitbricks-build5', my_node2: 'profitbricks-build1' } - '3': &builders_1_15 { my_node1: 'profitbricks-build1', my_node2: 'profitbricks-build15' } - '4': &builders_15_1 { my_node1: 'profitbricks-build15', my_node2: 'profitbricks-build1' } - '5': &builders_11_5 { my_node1: 'profitbricks-build11', my_node2: 'profitbricks-build5' } - '6': &builders_5_11 { my_node1: 'profitbricks-build5', my_node2: 'profitbricks-build11' } - '7': &builders_11_15 { my_node1: 'profitbricks-build11', my_node2: 'profitbricks-build15' } - '8': &builders_15_11 { my_node1: 'profitbricks-build15', my_node2: 'profitbricks-build11' } - '9': *builders_1_5 - '10': *builders_5_1 - '11': *builders_1_15 - '12': *builders_15_1 - '13': *builders_11_5 - '14': *builders_5_11 - '15': *builders_11_15 - '16': *builders_15_11 - '17': *builders_1_5 - '18': *builders_5_1 - '19': *builders_1_15 - '20': *builders_15_1 - '21': *builders_11_5 - '22': *builders_5_11 - '23': *builders_11_15 - '24': *builders_15_11 - '25': *builders_1_5 - '26': *builders_5_1 - '27': *builders_1_15 - '28': *builders_15_1 - '29': *builders_11_5 - '30': *builders_5_11 - '31': *builders_11_15 - '32': *builders_15_11 my_shell: '/srv/jenkins/bin/reproducible_build.sh {my_node1}-{my_arch} {my_node2}-{my_arch}' my_timed: '* * * * *' my_hname: '' - '{name}_builder_{my_arch}_{my_num}': my_description: 'Try to reproducibly build a scheduled package. This is one of several builder jobs.' my_arch: 'i386' my_num: - '1': &builders_2_6 { my_node1: 'profitbricks-build2', my_node2: 'profitbricks-build6' } - '2': &builders_6_2 { my_node1: 'profitbricks-build6', my_node2: 'profitbricks-build2' } - '3': &builders_2_16 { my_node1: 'profitbricks-build2', my_node2: 'profitbricks-build16' } - '4': &builders_16_2 { my_node1: 'profitbricks-build16', my_node2: 'profitbricks-build2' } - '5': &builders_12_6 { my_node1: 'profitbricks-build12', my_node2: 'profitbricks-build6' } - '6': &builders_6_12 { my_node1: 'profitbricks-build6', my_node2: 'profitbricks-build12' } - '7': &builders_12_16 { my_node1: 'profitbricks-build12', my_node2: 'profitbricks-build16' } - '8': &builders_16_12 { my_node1: 'profitbricks-build16', my_node2: 'profitbricks-build12' } - '9': *builders_2_6 - '10': *builders_6_2 - '11': *builders_2_16 - '12': *builders_16_2 - '13': *builders_12_6 - '14': *builders_6_12 - '15': *builders_12_16 - '16': *builders_16_12 - '17': *builders_2_6 - '18': *builders_6_2 - '19': *builders_2_16 - '20': *builders_16_2 - '21': *builders_12_6 - '22': *builders_6_12 - '23': *builders_12_16 - '24': *builders_16_12 my_shell: '/srv/jenkins/bin/reproducible_build.sh {my_node1}-{my_arch} {my_node2}-{my_arch}' my_timed: '* * * * *' my_hname: '' # always build on an odd numbered node and an even numbered node # # for i in sled9 sled10 sled11 sled12 sled13 sled14 sled15 sled16 ; do echo "$i: " ; grep node1 job-cfg/reproducible.yaml | grep $i | grep -v grep ; done # - '{name}_builder_{my_arch}_{my_num}': my_description: 'Try to reproducibly build a scheduled package. This is one of several builder jobs.' my_arch: 'arm64' my_num: - '1': { my_node1: 'codethink-sled9', my_node2: 'codethink-sled10' } - '2': { my_node1: 'codethink-sled9', my_node2: 'codethink-sled12' } - '3': { my_node1: 'codethink-sled9', my_node2: 'codethink-sled14' } - '4': { my_node1: 'codethink-sled10', my_node2: 'codethink-sled9' } - '5': { my_node1: 'codethink-sled12', my_node2: 'codethink-sled9' } - '6': { my_node1: 'codethink-sled14', my_node2: 'codethink-sled9' } - '7': { my_node1: 'codethink-sled10', my_node2: 'codethink-sled11' } - '8': { my_node1: 'codethink-sled10', my_node2: 'codethink-sled13' } - '9': { my_node1: 'codethink-sled13', my_node2: 'codethink-sled10' } - '10': { my_node1: 'codethink-sled15', my_node2: 'codethink-sled10' } - '11': { my_node1: 'codethink-sled12', my_node2: 'codethink-sled11' } - '12': { my_node1: 'codethink-sled11', my_node2: 'codethink-sled14' } - '13': { my_node1: 'codethink-sled11', my_node2: 'codethink-sled16' } - '14': { my_node1: 'codethink-sled11', my_node2: 'codethink-sled12' } - '15': { my_node1: 'codethink-sled12', my_node2: 'codethink-sled15' } - '16': { my_node1: 'codethink-sled15', my_node2: 'codethink-sled16' } - '17': { my_node1: 'codethink-sled13', my_node2: 'codethink-sled12' } - '18': { my_node1: 'codethink-sled13', my_node2: 'codethink-sled14' } - '19': { my_node1: 'codethink-sled14', my_node2: 'codethink-sled13' } - '20': { my_node1: 'codethink-sled16', my_node2: 'codethink-sled13' } - '21': { my_node1: 'codethink-sled14', my_node2: 'codethink-sled15' } - '22': { my_node1: 'codethink-sled16', my_node2: 'codethink-sled15' } - '23': { my_node1: 'codethink-sled16', my_node2: 'codethink-sled11' } - '24': { my_node1: 'codethink-sled15', my_node2: 'codethink-sled16' } - '25': { my_node1: 'codethink-sled9', my_node2: 'codethink-sled16' } - '26': { my_node1: 'codethink-sled16', my_node2: 'codethink-sled9' } - '27': { my_node1: 'codethink-sled10', my_node2: 'codethink-sled15' } - '28': { my_node1: 'codethink-sled11', my_node2: 'codethink-sled10' } - '29': { my_node1: 'codethink-sled12', my_node2: 'codethink-sled13' } - '30': { my_node1: 'codethink-sled15', my_node2: 'codethink-sled12' } - '31': { my_node1: 'codethink-sled14', my_node2: 'codethink-sled11' } - '32': { my_node1: 'codethink-sled13', my_node2: 'codethink-sled14' } my_shell: '/srv/jenkins/bin/reproducible_build.sh {my_node1}-{my_arch} {my_node2}-{my_arch}' my_timed: '* * * * *' my_hname: '' # could have all archs in one block, but it seems cleaner this way # to choose new jobs: # for i in bbx15 bpi0 cbxi4a cbxi4b cbxi4pro0 cb3a ff2a ff2b ff4a hb0 jtk1a odxu4 odxu4b odxu4c odu3a opi2a opi2b opi2c rpi2b rpi2c wbd0 wbq0 ; do echo "$i: " ; grep my_node1 job-cfg/reproducible.yaml|grep armhf|grep $i-armhf ; done # 8 jobs for quad-cores with 4 gb ram # 6 jobs for octo-cores with 2 gb ram # 6 jobs for quad-cores with 2 gb ram # 3 jobs for dual-cores with 1 gb ram # 3 jobs for quad-cores with 1 gb ram - '{name}_builder_{my_arch}_{my_num}': my_description: 'Try to reproducibly build a scheduled package. This is one of several builder jobs.' my_arch: 'armhf' my_num: - '1': { my_node1: 'bbx15-armhf-rb', my_node2: 'odxu4-armhf-rb' } - '2': { my_node1: 'wbq0-armhf-rb', my_node2: 'cbxi4pro0-armhf-rb' } - '3': { my_node1: 'hb0-armhf-rb', my_node2: 'odxu4-armhf-rb' } - '4': { my_node1: 'ff4a-armhf-rb', my_node2: 'wbq0-armhf-rb' } - '5': { my_node1: 'cbxi4pro0-armhf-rb', my_node2: 'bpi0-armhf-rb' } - '6': { my_node1: 'ff4a-armhf-rb', my_node2: 'cbxi4pro0-armhf-rb' } - '7': { my_node1: 'wbq0-armhf-rb', my_node2: 'odxu4-armhf-rb' } - '8': { my_node1: 'hb0-armhf-rb', my_node2: 'wbq0-armhf-rb' } - '9': { my_node1: 'ff4a-armhf-rb', my_node2: 'bpi0-armhf-rb' } - '10': { my_node1: 'odxu4-armhf-rb', my_node2: 'rpi2b-armhf-rb' } - '11': { my_node1: 'odxu4-armhf-rb', my_node2: 'wbd0-armhf-rb' } - '12': { my_node1: 'wbd0-armhf-rb', my_node2: 'cbxi4pro0-armhf-rb' } - '13': { my_node1: 'cbxi4pro0-armhf-rb', my_node2: 'rpi2b-armhf-rb' } - '14': { my_node1: 'cbxi4a-armhf-rb', my_node2: 'odxu4b-armhf-rb' } - '15': { my_node1: 'rpi2b-armhf-rb', my_node2: 'odxu4c-armhf-rb' } - '16': { my_node1: 'odxu4b-armhf-rb', my_node2: 'wbd0-armhf-rb' } - '17': { my_node1: 'odxu4c-armhf-rb', my_node2: 'hb0-armhf-rb' } - '18': { my_node1: 'odxu4b-armhf-rb', my_node2: 'odu3a-armhf-rb' } - '19': { my_node1: 'odxu4c-armhf-rb', my_node2: 'opi2c-armhf-rb' } - '20': { my_node1: 'opi2b-armhf-rb', my_node2: 'odxu4b-armhf-rb' } - '21': { my_node1: 'ff2a-armhf-rb', my_node2: 'odxu4c-armhf-rb' } - '22': { my_node1: 'ff2a-armhf-rb', my_node2: 'rpi2c-armhf-rb' } - '23': { my_node1: 'rpi2c-armhf-rb', my_node2: 'odxu4b-armhf-rb' } - '24': { my_node1: 'rpi2c-armhf-rb', my_node2: 'odxu4c-armhf-rb' } - '25': { my_node1: 'odxu4b-armhf-rb', my_node2: 'ff2b-armhf-rb' } - '26': { my_node1: 'jtk1a-armhf-rb', my_node2: 'ff2a-armhf-rb' } - '27': { my_node1: 'odxu4c-armhf-rb', my_node2: 'cbxi4a-armhf-rb' } - '28': { my_node1: 'jtk1a-armhf-rb', my_node2: 'ff2b-armhf-rb' } - '29': { my_node1: 'ff2b-armhf-rb', my_node2: 'jtk1a-armhf-rb' } - '30': { my_node1: 'ff2b-armhf-rb', my_node2: 'cbxi4b-armhf-rb' } - '31': { my_node1: 'ff2b-armhf-rb', my_node2: 'opi2b-armhf-rb' } - '32': { my_node1: 'jtk1a-armhf-rb', my_node2: 'cbxi4b-armhf-rb' } - '33': { my_node1: 'ff2a-armhf-rb', my_node2: 'opi2b-armhf-rb' } - '34': { my_node1: 'cbxi4a-armhf-rb', my_node2: 'opi2b-armhf-rb' } - '35': { my_node1: 'opi2a-armhf-rb', my_node2: 'ff2b-armhf-rb' } - '36': { my_node1: 'opi2a-armhf-rb', my_node2: 'cbxi4a-armhf-rb' } - '37': { my_node1: 'opi2a-armhf-rb', my_node2: 'wbq0-armhf-rb' } - '38': { my_node1: 'cbxi4b-armhf-rb', my_node2: 'jtk1a-armhf-rb' } - '39': { my_node1: 'cbxi4b-armhf-rb', my_node2: 'cbxi4a-armhf-rb' } - '40': { my_node1: 'opi2b-armhf-rb', my_node2: 'cbxi4b-armhf-rb' } - '41': { my_node1: 'opi2b-armhf-rb', my_node2: 'cbxi4b-armhf-rb' } - '42': { my_node1: 'cbxi4b-armhf-rb', my_node2: 'cbxi4a-armhf-rb' } - '43': { my_node1: 'cbxi4a-armhf-rb', my_node2: 'opi2c-armhf-rb' } - '44': { my_node1: 'bbx15-armhf-rb', my_node2: 'ff4a-armhf-rb' } - '45': { my_node1: 'ff4a-armhf-rb', my_node2: 'bbx15-armhf-rb' } - '46': { my_node1: 'wbq0-armhf-rb', my_node2: 'bbx15-armhf-rb' } - '47': { my_node1: 'cbxi4pro0-armhf-rb', my_node2: 'bbx15-armhf-rb' } - '48': { my_node1: 'bbx15-armhf-rb', my_node2: 'ff4a-armhf-rb' } - '49': { my_node1: 'bpi0-armhf-rb', my_node2: 'ff4a-armhf-rb' } - '50': { my_node1: 'odxu4-armhf-rb', my_node2: 'odu3a-armhf-rb' } - '51': { my_node1: 'odu3a-armhf-rb', my_node2: 'cb3a-armhf-rb' } - '52': { my_node1: 'opi2c-armhf-rb', my_node2: 'cb3a-armhf-rb' } - '53': { my_node1: 'cb3a-armhf-rb', my_node2: 'ff4a-armhf-rb' } - '54': { my_node1: 'odu3a-armhf-rb', my_node2: 'opi2c-armhf-rb' } - '55': { my_node1: 'opi2c-armhf-rb', my_node2: 'odu3a-armhf-rb' } - '56': { my_node1: 'odu3a-armhf-rb', my_node2: 'ff2a-armhf-rb' } - '57': { my_node1: 'opi2c-armhf-rb', my_node2: 'ff2a-armhf-rb' } - '58': { my_node1: 'cbxi4a-armhf-rb', my_node2: 'opi2a-armhf-rb' } - '59': { my_node1: 'jtk1a-armhf-rb', my_node2: 'opi2a-armhf-rb' } - '60': { my_node1: 'cbxi4b-armhf-rb', my_node2: 'opi2a-armhf-rb' } my_shell: '/srv/jenkins/bin/reproducible_build.sh {my_node1} {my_node2}' my_timed: '* * * * *' my_hname: '' - '{name}_{otherproject_artifacts}': otherproject_artifacts: - 'lede': my_description: 'Rebuild LEDE (some targets, some packages) twice (with variations) and investigate regarding reproducibility.' my_timed: '42 23 * * 4' my_shell: '/srv/jenkins/bin/reproducible_lede.sh master' - 'openwrt': my_description: 'Rebuild OpenWrt (some targets, some packages) twice (with variations) and investigate regarding reproducibility.' my_timed: '42 23 * * 2' my_shell: '/srv/jenkins/bin/reproducible_openwrt.sh master' my_trigger: 'reproducible_html_rsync_remote_results' my_hname: '' my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org lynxis@fe80.eu' - '{name}_{otherproject_triggering}': otherproject_triggering: - 'coreboot': my_description: 'Rebuild all coreboot ROMs twice (with variations) and investigate regarding reproducibility.' my_timed: '42 23 * * 1' my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org lynxis@fe80.eu' - 'netbsd': my_description: 'Rebuild NetBSD (for some archs) twice (with variations) and investigate regarding reproducibility.' my_timed: '42 23 * * 3' my_trigger: 'reproducible_html_rsync_remote_results' my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh' my_hname: 'profitbricks3' my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org' - '{name}_{otherproject}': otherproject: - 'freebsd': my_description: 'Rebuild FreeBSD twice (with variations) and investigate regarding reproducibility.' my_timed: '42 23 * * 4' my_recipients: 'jenkins+reproducible-builds qa-jenkins-scm@lists.alioth.debian.org' my_shell: '/srv/jenkins/bin/reproducible_freebsd.sh' - 'setup_schroot_archlinux_jenkins': my_description: 'Setup an Arch Linux schroot to test Arch Linux packages for reproducibility.' my_timed: '42 23 1 1 *' my_shell: '/srv/jenkins/bin/reproducible_setup_archlinux_schroot.sh' my_disabled: true - 'setup_schroot_archlinux_profitbricks3': my_description: 'Setup an Arch Linux schroot to test Arch Linux packages for reproducibility.' my_timed: '42 23 1 1 *' my_hname: 'profitbricks3' my_disabled: true - 'setup_schroot_archlinux_profitbricks4': my_description: 'Setup an Arch Linux schroot to test Arch Linux packages for reproducibility.' my_timed: '42 23 1 1 *' my_hname: 'profitbricks4' my_disabled: true - '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' - 'setup_mock_fedora-23_x86_64_profitbricks3': my_description: 'Setup mock for fedora-23 on X86_64 to test .rpm packages for reproducibility.' my_timed: '42 23 1 1 *' my_hname: 'profitbricks3' - 'setup_mock_fedora-23_x86_64_profitbricks4': my_description: 'Setup mock for fedora-23 on X86_64 to test .rpm packages for reproducibility.' my_timed: '42 23 1 1 *' my_hname: 'profitbricks4' my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh' my_hname: '' - '{name}_{otherproject_git}': otherproject_git: - 'setup_fdroid_build_environment_profitbricks7': my_description: 'Setup a build environment for F-Droid.' my_timed: '42 23 1 1 *' my_hname: 'profitbricks7' my_gitrepo: 'https://gitlab.com/fdroid/fdroidserver.git' my_recipients: 'qa-jenkins-scm@lists.alioth.debian.org' - 'diffoscope_from_git_master': my_description: 'Build diffoscope Debian package from git branch master.' my_timed: '42 23 1 1 *' my_hname: '' my_gitrepo: 'git://anonscm.debian.org/git/reproducible/diffoscope.git' 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' - 'diffoscope_from_git_branches': my_description: 'Build diffoscope Debian package from git branches other than master.' my_timed: '42 23 1 1 *' my_hname: '' my_gitrepo: 'git://anonscm.debian.org/git/reproducible/diffoscope.git' 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' - 'reprotest_from_git_master': my_description: 'Build reprotest Debian package from git branch master.' my_timed: '42 23 1 1 *' my_hname: '' my_gitrepo: 'git://anonscm.debian.org/git/reproducible/reprotest.git' 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' - 'strip-nondeterminism_from_git_master': my_description: 'Build strip-nondeterminism Debian package from git branch master.' my_timed: '42 23 1 1 *' my_hname: '' my_gitrepo: 'git://anonscm.debian.org/git/reproducible/strip-nondeterminism.git' my_gitbranches: 'origin/master' my_shell: '/srv/jenkins/bin/chroot-run.sh sid gbp buildpackage -uc -us --git-upstream-branch=master' 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 *' my_hname: '' my_gitrepo: 'git://anonscm.debian.org/git/reproducible/disorderfs.git' my_gitbranches: 'origin/master' my_shell: '/srv/jenkins/bin/chroot-run.sh sid gbp buildpackage -uc -us --git-upstream-branch=master' my_parse_rules: '/srv/jenkins/logparse/debian-pkg-ci.rules' - 'builds_website': my_description: 'Build https://reproducible-builds.org on every git commit to https://anonscm.debian.org/git/reproducible/reproducible-website.git with jekyll.' my_timed: '' my_hname: '' my_gitrepo: 'git://git.debian.org/git/reproducible/reproducible-website.git' my_gitbranches: 'origin/master' my_shell: 'jekyll build -s . -d /srv/reproducible-builds.org/www' my_gitbranches: 'master' my_recipients: 'jenkins+debian-reproducible qa-jenkins-scm@lists.alioth.debian.org' my_shell: '/srv/jenkins/bin/jenkins_master_wrapper.sh' my_parse_rules: '/srv/jenkins/logparse/reproducible-extra.rules' my_hname: '' - '{name}_builder_{otherproject}_{my_num}': otherproject: - 'archlinux': my_num: 1 op_descname: 'an Arch Linux' my_disabled: true - 'archlinux': my_num: 2 op_descname: 'an Arch Linux' my_disabled: true - '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' - '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' # when you add another fedora builder here # the loop in bin/reproducible_setup_mock.sh needs to be increased too my_description: 'Try to reproducibly build {op_descname} package.' my_shell: '/srv/jenkins/bin/reproducible_build_{otherproject}_pkg.sh' my_timed: '* * * * *' my_trigger: 'reproducible_html_{otherproject}' my_hname: ''