Laurent Alfonsi | 9b9125f | 2023-02-24 17:25:48 +0100 | [diff] [blame] | 1 | # Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg_bmk.yaml.in and tcwg_bmk/tcwg_bmk-code_speed-cpu2017speed--llvm.def. Do not edit. |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 2 | # Beware: git branch names need the 'refs/heads/' prefix, while tags need 'refs/tags/' |
| 3 | - project: |
Laurent Alfonsi | 9b9125f | 2023-02-24 17:25:48 +0100 | [diff] [blame] | 4 | name: tcwg_bmk-code_speed-cpu2017speed-llvm |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 5 | llvm_url: https://github.com/llvm/llvm-project.git |
| 6 | |
| 7 | toolchain_name: llvm |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 8 | |
| 9 | # BMK defined in def files |
| 10 | bmk: |
Laurent Alfonsi | 9f55e93 | 2023-02-20 12:09:13 +0100 | [diff] [blame] | 11 | - cpu2017speed |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 12 | |
Laurent Alfonsi | 9b9125f | 2023-02-24 17:25:48 +0100 | [diff] [blame] | 13 | target: |
Laurent Alfonsi | eaf4750 | 2023-03-09 11:09:05 +0100 | [diff] [blame] | 14 | - aarch64: |
| 15 | docker_arch: arm64 |
| 16 | |
Laurent Alfonsi | 9b9125f | 2023-02-24 17:25:48 +0100 | [diff] [blame] | 17 | |
Maxim Kuvyrkov | 4589cc3 | 2023-03-02 08:36:56 +0000 | [diff] [blame] | 18 | # PROFILE_NAME defined in def files |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 19 | cflags: |
| 20 | - O2 |
Laurent Alfonsi | 9f55e93 | 2023-02-20 12:09:13 +0100 | [diff] [blame] | 21 | - O2_LTO |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 22 | - O3 |
Laurent Alfonsi | 9f55e93 | 2023-02-20 12:09:13 +0100 | [diff] [blame] | 23 | - O3_LTO |
Antoine Moynault | 17ab938 | 2024-04-24 06:54:10 +0000 | [diff] [blame] | 24 | - Os |
| 25 | - Os_LTO |
| 26 | - Oz |
| 27 | - Oz_LTO |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 28 | |
| 29 | jobs: |
| 30 | - 'tcwg_bmk-llvm-master' |
| 31 | |
Laurent Alfonsi | 6375a16 | 2023-02-23 11:57:15 +0100 | [diff] [blame] | 32 | |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 33 | - job-group: |
| 34 | name: tcwg_bmk-llvm-master |
| 35 | toolchain_ver: master |
Laurent Alfonsi | 0cacf30 | 2024-06-13 14:32:10 +0200 | [diff] [blame] | 36 | llvm_branch: main |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 37 | distro: default |
| 38 | cron_schedule: 'H H H/3 * *' |
| 39 | jobs: |
Laurent Alfonsi | 9b9125f | 2023-02-24 17:25:48 +0100 | [diff] [blame] | 40 | - 'tcwg_bmk-code_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-build' |
| 41 | - 'tcwg_bmk-code_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-bisect' |
Laurent Alfonsi | 6375a16 | 2023-02-23 11:57:15 +0100 | [diff] [blame] | 42 | ci_project: 'tcwg_bmk-code_speed-cpu2017speed' |
Laurent Alfonsi | 9b9125f | 2023-02-24 17:25:48 +0100 | [diff] [blame] | 43 | ci_config: 'llvm-{target}-{toolchain_ver}-{cflags}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 44 | |
| 45 | #BEGIN: tcwg/round-robin.yaml.inc |
| 46 | # -*- mode: Yaml -*- |
| 47 | |
| 48 | #BEGIN: tcwg/default.yaml.inc |
| 49 | # -*- mode: Yaml -*- |
| 50 | |
| 51 | - property: |
| 52 | name: default-properties |
| 53 | properties: |
| 54 | - authorization: |
| 55 | anonymous: |
| 56 | - job-read |
| 57 | - job-extended-read |
| 58 | everyone-flat: |
| 59 | - job-build |
| 60 | - job-cancel |
| 61 | - build-discarder: |
Maxim Kuvyrkov | 5e1f666 | 2025-02-20 05:32:41 +0000 | [diff] [blame] | 62 | days-to-keep: 20 |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 63 | |
| 64 | - scm: |
| 65 | name: jenkins-scripts |
| 66 | scm: |
| 67 | - git: |
Laurent Alfonsi | 3c7c10a | 2025-04-17 17:04:51 +0200 | [diff] [blame] | 68 | url: https://gitlab.com/Linaro/tcwg/jenkins-scripts.git |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 69 | refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/* |
| 70 | branches: |
| 71 | - $scripts_branch |
| 72 | basedir: jenkins-scripts |
| 73 | skip-tag: true |
| 74 | reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git |
| 75 | wipe-workspace: false |
| 76 | clean: |
| 77 | before: true |
| 78 | prune: true |
| 79 | |
| 80 | - scm: |
| 81 | name: bmk-scripts |
| 82 | scm: |
| 83 | - git: |
Laurent Alfonsi | 50d9de9 | 2025-05-27 13:04:04 +0200 | [diff] [blame] | 84 | url: https://gitlab.com/Linaro/tcwg/bmk-scripts.git |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 85 | refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/* |
| 86 | branches: |
| 87 | - $bmk_branch |
| 88 | basedir: bmk-scripts |
| 89 | skip-tag: true |
| 90 | reference-repo: /home/tcwg-buildslave/snapshots-ref/bmk-scripts.git |
| 91 | wipe-workspace: false |
| 92 | clean: |
| 93 | before: true |
| 94 | prune: true |
| 95 | #END: tcwg/default.yaml.inc |
| 96 | |
| 97 | - parameter: |
| 98 | name: default-parameters |
| 99 | parameters: |
| 100 | - string: |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 101 | name: extra_build_params |
| 102 | default: "" |
| 103 | description: "Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config" |
| 104 | - string: |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 105 | name: distro |
| 106 | default: '{distro}' |
| 107 | description: 'Distro image to use' |
| 108 | - string: |
| 109 | name: scripts_branch |
| 110 | default: master |
| 111 | description: 'Scripts revision to use' |
| 112 | - string: |
| 113 | name: bmk_branch |
| 114 | default: master |
| 115 | description: 'Benchmark scripts revision to use' |
| 116 | |
| 117 | - parameter: |
| 118 | name: component-parameters |
| 119 | parameters: |
| 120 | - string: |
| 121 | name: '{component}_git' |
| 122 | default: '{default_git}' |
Christophe Lyon | 1290bab | 2024-02-13 22:23:45 +0000 | [diff] [blame] | 123 | description: "{component} git_url#branch/sha1 to build, or 'default', 'baseline' or 'jenkins-scm', or pw://series/<id> to build with patches from patchwork ('precommit' mode, use 'pw://series/<id>/retrigger/' to force a rebuild)" |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 124 | |
| 125 | - parameter: |
Maxim Kuvyrkov | c81e472 | 2023-11-22 18:11:33 +0000 | [diff] [blame] | 126 | name: all-component-parameters |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 127 | parameters: |
| 128 | - component-parameters: |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 129 | component: llvm |
| 130 | default_git: '{default_git}' |
Maxim Kuvyrkov | c81e472 | 2023-11-22 18:11:33 +0000 | [diff] [blame] | 131 | |
| 132 | - parameter: |
| 133 | name: build-parameters |
| 134 | parameters: |
| 135 | - all-component-parameters: |
| 136 | default_git: '{default_git}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 137 | - choice: |
| 138 | name: update_baseline |
| 139 | choices: |
| 140 | - onsuccess |
| 141 | - force |
| 142 | - init |
| 143 | - ignore |
| 144 | description: "What to do with baseline in this build" |
Maxim Kuvyrkov | 069813f | 2023-05-06 19:17:00 +0000 | [diff] [blame] | 145 | - choice: |
| 146 | name: notify |
| 147 | choices: |
| 148 | - ignore |
| 149 | - onregression |
Maxim Kuvyrkov | 333b296 | 2023-08-14 08:55:46 +0000 | [diff] [blame] | 150 | - precommit |
Maxim Kuvyrkov | 069813f | 2023-05-06 19:17:00 +0000 | [diff] [blame] | 151 | description: "Whether to notify developers about the result of this build" |
Laurent Alfonsi | 464db22 | 2024-05-28 14:09:45 +0200 | [diff] [blame] | 152 | - string: |
Laurent Alfonsi | 8527d66 | 2024-05-24 16:27:08 +0200 | [diff] [blame] | 153 | name: rr_stage |
| 154 | default: build |
| 155 | description: "Describe the current round-robin stage for this run (informative only)" |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 156 | - default-parameters: |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 157 | distro: '{distro}' |
| 158 | |
Laurent Alfonsi | 87ab4de | 2024-04-25 07:34:20 +0200 | [diff] [blame] | 159 | |
Laurent Alfonsi | 2ac30aa | 2023-08-23 16:13:37 +0200 | [diff] [blame] | 160 | - property: |
| 161 | name: build-properties |
| 162 | properties: |
| 163 | - default-properties |
| 164 | - build-blocker: |
| 165 | blocking-jobs: |
| 166 | - '{ci_project}--{ci_config}-bisect' |
| 167 | queue-scanning: 'ALL' |
| 168 | |
Maxim Kuvyrkov | ab90c43 | 2024-01-08 08:51:26 +0000 | [diff] [blame] | 169 | |
Laurent Alfonsi | 2ac30aa | 2023-08-23 16:13:37 +0200 | [diff] [blame] | 170 | - property: |
| 171 | name: bisect-properties |
| 172 | properties: |
| 173 | - default-properties |
| 174 | - build-blocker: |
| 175 | # Run at most 1 bisect job for all configurations. |
| 176 | # Bisect jobs can easily run for 5+ hours, and a few of them |
| 177 | # can hog the entire TCWG build farm for a long time. Since |
| 178 | # same regression tends to appear in multiple configurations, |
| 179 | # run bisections for all configurations in-order. |
| 180 | blocking-jobs: |
| 181 | # We can't have same regressions between GNU and LLVM toolchains, |
| 182 | # do allow parallel bisections of those. |
| 183 | - '{ci_project}--llvm-.*-bisect' |
| 184 | queue-scanning: 'BUILDABLE' |
| 185 | |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 186 | # Beware: git branch names need the 'refs/heads/' prefix while tags |
| 187 | # need 'refs/tags/'. |
| 188 | - scm: |
| 189 | name: component-scm |
| 190 | scm: |
| 191 | - git: |
| 192 | url: '{url}' |
| 193 | branches: |
Laurent Alfonsi | 0cacf30 | 2024-06-13 14:32:10 +0200 | [diff] [blame] | 194 | - 'refs/heads/{branch}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 195 | basedir: '{component}' |
Laurent Alfonsi | cdf084e | 2024-06-28 14:50:37 +0200 | [diff] [blame] | 196 | do-not-fetch-tags: true |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 197 | reference-repo: '/home/tcwg-buildslave/snapshots-ref/{reference}' |
Laurent Alfonsi | 1ed7e3f | 2024-06-25 14:52:06 +0200 | [diff] [blame] | 198 | refspec: '+refs/heads/{branch}:refs/remotes/origin/{branch}' |
Laurent Alfonsi | 0cde275 | 2024-06-13 14:32:10 +0200 | [diff] [blame] | 199 | shallow-clone: true |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 200 | wipe-workspace: false |
| 201 | clean: |
| 202 | before: true |
| 203 | prune: true |
| 204 | |
| 205 | # SCMs must start with jenkins-scripts and then be ordered alphabetically. |
| 206 | # Same alphabetical order must be followed in .def files. The reason behind |
| 207 | # this is that jenkins sets $GIT_COMMIT to sha1 of jenkins-scripts, and then |
| 208 | # sets $GIT_COMMIT_1, $GIT_COMMIT_2, etc. to sha1s of component SCM /in the |
| 209 | # order that they are declared here/. |
| 210 | - scm: |
| 211 | name: build-scms |
| 212 | scm: |
| 213 | - jenkins-scripts |
Laurent Alfonsi | 2d48507 | 2025-05-20 16:06:45 +0000 | [diff] [blame] | 214 | - component-scm: |
| 215 | component: llvm |
| 216 | url: '{llvm_url}' |
| 217 | branch: '{llvm_branch}' |
| 218 | reference: llvm-project.git |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 219 | |
| 220 | - wrapper: |
| 221 | name: build-wrappers |
| 222 | wrappers: |
| 223 | - timeout: |
| 224 | timeout: '{timeout}' |
| 225 | - timestamps |
| 226 | - ssh-agent-credentials: |
| 227 | # tcwg-buildslave user id |
| 228 | users: |
| 229 | - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a' |
Christophe Lyon | ee8d3e8 | 2025-04-29 13:50:15 +0000 | [diff] [blame] | 230 | - 'tcwg-buildslave-20220725' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 231 | - credentials-binding: |
| 232 | - text: |
| 233 | credential-id: TCWG_JIRA_TOKEN |
| 234 | variable: TCWG_JIRA_TOKEN |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 235 | |
| 236 | - builder: |
Maxim Kuvyrkov | ccd89ea | 2023-06-30 17:16:10 +0000 | [diff] [blame] | 237 | name: trigger-followup-builds-1 |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 238 | builders: |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 239 | - shell: | |
| 240 | #!/bin/bash |
Maxim Kuvyrkov | 8adf09b | 2023-07-01 15:47:55 +0000 | [diff] [blame] | 241 | source artifacts/jenkins/run-build.env |
Maxim Kuvyrkov | 8c8e4aa | 2023-11-22 18:56:53 +0000 | [diff] [blame] | 242 | set -ex |
Maxim Kuvyrkov | 8adf09b | 2023-07-01 15:47:55 +0000 | [diff] [blame] | 243 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 244 | for i in artifacts/trigger-build-* artifacts/trigger-bisect; do |
| 245 | if [ -f $i ]; then |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 246 | echo "distro=$distro" >> $i |
| 247 | echo "scripts_branch=$scripts_branch" >> $i |
| 248 | echo "bmk_branch=$bmk_branch" >> $i |
| 249 | fi |
| 250 | done |
Maxim Kuvyrkov | ccd89ea | 2023-06-30 17:16:10 +0000 | [diff] [blame] | 251 | |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 252 | trap "" EXIT |
| 253 | |
Maxim Kuvyrkov | ccd89ea | 2023-06-30 17:16:10 +0000 | [diff] [blame] | 254 | - builder: |
| 255 | name: trigger-followup-builds-2 |
| 256 | builders: |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 257 | - trigger-builds: |
Maxim Kuvyrkov | 52c3cc2 | 2024-01-05 15:40:26 +0000 | [diff] [blame] | 258 | - project: '{ci_project}--{ci_config}-build' |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 259 | parameter-factories: |
| 260 | - factory: filebuild |
| 261 | file-pattern: artifacts/trigger-build-* |
Maxim Kuvyrkov | 52c3cc2 | 2024-01-05 15:40:26 +0000 | [diff] [blame] | 262 | - project: '{ci_project}--{ci_config}-bisect' |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 263 | property-file: artifacts/trigger-bisect |
Maxim Kuvyrkov | 12858ec | 2023-05-03 18:38:05 +0000 | [diff] [blame] | 264 | |
| 265 | - builder: |
Maxim Kuvyrkov | 333b296 | 2023-08-14 08:55:46 +0000 | [diff] [blame] | 266 | name: run-build-notify |
Maxim Kuvyrkov | 12858ec | 2023-05-03 18:38:05 +0000 | [diff] [blame] | 267 | builders: |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 268 | - shell: | |
| 269 | #!/bin/bash |
Maxim Kuvyrkov | 8adf09b | 2023-07-01 15:47:55 +0000 | [diff] [blame] | 270 | source artifacts/jenkins/run-build.env |
Maxim Kuvyrkov | 8c8e4aa | 2023-11-22 18:56:53 +0000 | [diff] [blame] | 271 | set -ex |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 272 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 273 | if [ -f artifacts/failed ]; then |
Maxim Kuvyrkov | ab01ec0 | 2023-08-14 08:52:38 +0000 | [diff] [blame] | 274 | # Only send notifications for forced successful |
| 275 | # (aka "onregression") builds; never for failed builds. |
Laurent Alfonsi | a723e00 | 2023-10-02 15:25:05 +0200 | [diff] [blame] | 276 | echo "Build failed. Using option notify=ignore." |
Maxim Kuvyrkov | ab01ec0 | 2023-08-14 08:52:38 +0000 | [diff] [blame] | 277 | notify=ignore |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 278 | fi |
Maxim Kuvyrkov | b1f9999 | 2023-05-25 15:16:53 +0000 | [diff] [blame] | 279 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 280 | # Basic notification -- create entry in interesting-commits. |
Maxim Kuvyrkov | 835cfc2 | 2023-07-04 15:40:32 +0000 | [diff] [blame] | 281 | # Note that we add --notify to the manifest -- we will need this |
| 282 | # later in round-robin-baseline.sh when re-writing history |
| 283 | # to update notifications files in interesting-commits and jira. |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 284 | build_container_exec \ |
Maxim Kuvyrkov | d2207ec | 2024-06-28 14:10:30 +0000 | [diff] [blame] | 285 | ./jenkins-scripts/rr/round-robin-notify.sh \ |
Maxim Kuvyrkov | 835cfc2 | 2023-07-04 15:40:32 +0000 | [diff] [blame] | 286 | @@rr[top_artifacts] artifacts --notify "$notify" \ |
| 287 | __stage init __verbose true \ |
Thiago Jung Bauermann | 676c14a | 2023-09-12 12:37:40 -0300 | [diff] [blame] | 288 | __build_script {build_script} \ |
Maxim Kuvyrkov | 333b296 | 2023-08-14 08:55:46 +0000 | [diff] [blame] | 289 | &> ./artifacts/jenkins/notify-init.log & |
Maxim Kuvyrkov | 3966f7e | 2023-06-16 13:36:25 +0000 | [diff] [blame] | 290 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 291 | if ! wait $!; then |
| 292 | echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \ |
| 293 | > artifacts/jenkins/error-mail-recipients.txt |
| 294 | echo -e "$BUILD_URL\nERROR: notify-init failed\n" \ |
| 295 | >> artifacts/jenkins/error-mail-body.txt |
Laurent Alfonsi | 5344691 | 2023-09-10 15:14:16 +0200 | [diff] [blame] | 296 | echo "ERROR: notify-init failed" |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 297 | exit 1 |
| 298 | fi |
Maxim Kuvyrkov | 3966f7e | 2023-06-16 13:36:25 +0000 | [diff] [blame] | 299 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 300 | # Full notification |
| 301 | echo "NOTE: Notify developers about this build" |
Maxim Kuvyrkov | e8a1954 | 2023-12-26 10:12:55 +0000 | [diff] [blame] | 302 | |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 303 | build_container_exec \ |
Maxim Kuvyrkov | d2207ec | 2024-06-28 14:10:30 +0000 | [diff] [blame] | 304 | ./jenkins-scripts/rr/round-robin-notify.sh \ |
Maxim Kuvyrkov | e8a1954 | 2023-12-26 10:12:55 +0000 | [diff] [blame] | 305 | @@rr[top_artifacts] artifacts __stage full __verbose true \ |
Thiago Jung Bauermann | 676c14a | 2023-09-12 12:37:40 -0300 | [diff] [blame] | 306 | __build_script {build_script} \ |
Maxim Kuvyrkov | 333b296 | 2023-08-14 08:55:46 +0000 | [diff] [blame] | 307 | &> ./artifacts/jenkins/notify-full.log & |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 308 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 309 | if ! wait $!; then |
| 310 | echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \ |
| 311 | > artifacts/jenkins/error-mail-recipients.txt |
| 312 | echo -e "$BUILD_URL\nERROR: notify-full failed\n" \ |
| 313 | >> artifacts/jenkins/error-mail-body.txt |
Laurent Alfonsi | 5344691 | 2023-09-10 15:14:16 +0200 | [diff] [blame] | 314 | echo "ERROR: notify-full failed" |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 315 | fi |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 316 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 317 | # Failsafe for avoid spamming developers. |
| 318 | if [ "$notify" = "ignore" ] \ |
| 319 | && [ -f artifacts/jenkins/mail-recipients.txt ]; then |
| 320 | echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \ |
| 321 | > artifacts/jenkins/error-mail-recipients.txt |
| 322 | echo -e "$BUILD_URL\nERROR: tried to unexpectedly notify developers\n" \ |
| 323 | >> artifacts/jenkins/error-mail-body.txt |
| 324 | mv artifacts/jenkins/mail-recipients.txt \ |
| 325 | artifacts/jenkins/mail-recipients.bak |
| 326 | fi |
Maxim Kuvyrkov | dc5adc1 | 2023-07-01 08:02:24 +0000 | [diff] [blame] | 327 | |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 328 | trap "" EXIT |
| 329 | |
Maxim Kuvyrkov | dc5adc1 | 2023-07-01 08:02:24 +0000 | [diff] [blame] | 330 | - builder: |
| 331 | name: run-exit-on-failure |
| 332 | builders: |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 333 | - shell: | |
| 334 | #!/bin/bash |
Maxim Kuvyrkov | 8adf09b | 2023-07-01 15:47:55 +0000 | [diff] [blame] | 335 | source artifacts/jenkins/run-build.env |
Maxim Kuvyrkov | 8c8e4aa | 2023-11-22 18:56:53 +0000 | [diff] [blame] | 336 | set -ex |
Maxim Kuvyrkov | 5a41522 | 2023-05-25 15:43:31 +0000 | [diff] [blame] | 337 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 338 | if [ -f artifacts/failed ]; then |
| 339 | # Mark failed build as FAILURE; no further steps will run. |
| 340 | exit $(cat artifacts/failed) |
| 341 | fi |
| 342 | # Only successful builds run beyond this point. |
Maxim Kuvyrkov | 909dfbe | 2023-05-06 19:56:28 +0000 | [diff] [blame] | 343 | |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 344 | trap "" EXIT |
| 345 | |
Maxim Kuvyrkov | b1f9999 | 2023-05-25 15:16:53 +0000 | [diff] [blame] | 346 | - builder: |
| 347 | name: run-push-baseline |
| 348 | builders: |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 349 | - shell: | |
| 350 | #!/bin/bash |
Maxim Kuvyrkov | 8adf09b | 2023-07-01 15:47:55 +0000 | [diff] [blame] | 351 | source artifacts/jenkins/run-build.env |
Maxim Kuvyrkov | 8c8e4aa | 2023-11-22 18:56:53 +0000 | [diff] [blame] | 352 | set -ex |
Maxim Kuvyrkov | b1f9999 | 2023-05-25 15:16:53 +0000 | [diff] [blame] | 353 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 354 | # Update baseline branch of base-artifacts. |
| 355 | # If we made it this far, then the build is successful |
| 356 | # (possibly because it was forced to be declared successful). |
| 357 | if [ "$update_baseline" = "ignore" ]; then |
Maxim Kuvyrkov | a5f21f4 | 2023-08-18 16:07:57 +0000 | [diff] [blame] | 358 | trap "" EXIT |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 359 | exit 0 |
| 360 | fi |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 361 | |
Laurent Alfonsi | e6cb4ea | 2024-04-26 15:15:08 +0200 | [diff] [blame] | 362 | # We may need jira token while rewriting history. |
Laurent Alfonsi | c7a4095 | 2024-04-26 19:44:08 +0200 | [diff] [blame] | 363 | if [ -f $HOME/.jipdate.yml ]; then |
Laurent Alfonsi | e6cb4ea | 2024-04-26 15:15:08 +0200 | [diff] [blame] | 364 | ( |
| 365 | # BE CAREFUL WITH TCWG_JIRA_TOKEN |
| 366 | set +x |
| 367 | build_container_exec \ |
| 368 | sed -i -e "s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/" \ |
| 369 | "$HOME/.jipdate.yml" |
| 370 | ) |
| 371 | fi |
| 372 | |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 373 | build_container_exec \ |
Maxim Kuvyrkov | d2207ec | 2024-06-28 14:10:30 +0000 | [diff] [blame] | 374 | ./jenkins-scripts/rr/round-robin-baseline.sh \ |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 375 | @@rr[top_artifacts] artifacts \ |
Maxim Kuvyrkov | 570e5ea | 2023-07-01 19:43:07 +0000 | [diff] [blame] | 376 | __build_script {build_script} \ |
Maxim Kuvyrkov | e5b3c06 | 2023-07-01 12:45:48 +0000 | [diff] [blame] | 377 | __push_base_artifacts true \ |
Maxim Kuvyrkov | 5e3db0f | 2023-07-01 12:46:59 +0000 | [diff] [blame] | 378 | __rewrite_base_artifacts true \ |
Laurent Alfonsi | 87ab4de | 2024-04-25 07:34:20 +0200 | [diff] [blame] | 379 | __commit_artifacts {commit_artifacts} \ |
Laurent Alfonsi | 9d6f3c8 | 2024-04-19 15:32:04 +0000 | [diff] [blame] | 380 | __rewrite_num 100 \ |
Laurent Alfonsi | e2a36ca | 2024-11-04 13:04:24 +0100 | [diff] [blame] | 381 | &> ./artifacts/jenkins/rewrite-{commit_artifacts}.log & |
Maxim Kuvyrkov | dbee952 | 2023-05-06 19:39:52 +0000 | [diff] [blame] | 382 | |
Maxim Kuvyrkov | bdf8f06 | 2025-02-20 05:53:02 +0000 | [diff] [blame] | 383 | res=0 && wait $! || res=$? |
| 384 | |
| 385 | # Compress big files in artifacts/NN-* directories to save disk space |
| 386 | # on ci.linaro.org. |
| 387 | find artifacts/ -size +1M ! -name "*.xz" \ |
| 388 | -path "artifacts/[0-9]*" -print0 \ |
Maxim Kuvyrkov | 2fc30f9 | 2025-02-20 23:33:00 +0000 | [diff] [blame] | 389 | | xargs -0 -i@ xz -T0 @ |
Maxim Kuvyrkov | bdf8f06 | 2025-02-20 05:53:02 +0000 | [diff] [blame] | 390 | |
| 391 | if [ $res != 0 ]; then |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 392 | echo "maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org" \ |
| 393 | > artifacts/jenkins/error-mail-recipients.txt |
Maxim Kuvyrkov | 25379cc | 2024-03-28 07:30:27 +0000 | [diff] [blame] | 394 | echo -e "$BUILD_URL\nERROR: round-robin-baseline.sh failed" \ |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 395 | >> artifacts/jenkins/error-mail-body.txt |
Laurent Alfonsi | 5344691 | 2023-09-10 15:14:16 +0200 | [diff] [blame] | 396 | echo "ERROR: round-robin-baseline.sh failed" |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 397 | # We have failed to update the baseline, so let's fail and |
| 398 | # not notify developers. |
| 399 | exit 1 |
| 400 | fi |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 401 | |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 402 | trap "" EXIT |
| 403 | |
Laurent Alfonsi | a8284ec | 2023-11-16 10:05:38 +0100 | [diff] [blame] | 404 | - builder: |
| 405 | name: run-push-lnt-results |
| 406 | builders: |
| 407 | - trigger-builds: |
Laurent Alfonsi | 1678ed7 | 2023-11-20 22:06:39 +0100 | [diff] [blame] | 408 | - project: tcwg-update-lnt-results |
Laurent Alfonsi | a8284ec | 2023-11-16 10:05:38 +0100 | [diff] [blame] | 409 | predefined-parameters: | |
Maxim Kuvyrkov | 67698ea | 2024-01-05 15:26:07 +0000 | [diff] [blame] | 410 | ci_project={ci_project} |
| 411 | ci_config={ci_config} |
Laurent Alfonsi | a8284ec | 2023-11-16 10:05:38 +0100 | [diff] [blame] | 412 | |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 413 | |
| 414 | - builder: |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 415 | name: run-build-init |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 416 | builders: |
| 417 | - shell: |
| 418 | command: | |
| 419 | #!/bin/bash |
| 420 | set -ex |
| 421 | # Delete artifacts now to avoid re-using stale artifacts if |
| 422 | # below docker-run.sh fails to start up a container. |
| 423 | rm -rf artifacts/ |
| 424 | mkdir -p artifacts/jenkins |
| 425 | |
Maxim Kuvyrkov | bc309d5 | 2023-05-25 16:08:50 +0000 | [diff] [blame] | 426 | build_name="#$BUILD_NUMBER" |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 427 | echo "$build_name" > artifacts/jenkins/build-name |
| 428 | |
Laurent Alfonsi | a957279 | 2024-10-24 12:00:20 +0200 | [diff] [blame] | 429 | git -C jenkins-scripts submodule update --init --remote |
Maxim Kuvyrkov | d2207ec | 2024-06-28 14:10:30 +0000 | [diff] [blame] | 430 | |
Maxim Kuvyrkov | 5d4ddd8 | 2024-01-17 15:12:28 +0000 | [diff] [blame] | 431 | if [ "{precommit}" = "True" ]; then |
Maxim Kuvyrkov | 02987c1 | 2024-01-10 09:43:41 +0000 | [diff] [blame] | 432 | cat >> artifacts/jenkins/run-build.env <<EOF |
| 433 | update_baseline=ignore |
| 434 | EOF |
| 435 | fi |
| 436 | |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 437 | cat >> artifacts/jenkins/run-build.env <<EOF |
| 438 | build_name="$build_name" |
| 439 | EOF |
| 440 | unstable-return: 125 |
| 441 | |
| 442 | - builder: |
| 443 | name: run-build-skip-if-queue |
| 444 | builders: |
| 445 | - shell: |
| 446 | command: | |
| 447 | #!/bin/bash |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 448 | source artifacts/jenkins/run-build.env |
Maxim Kuvyrkov | 8c8e4aa | 2023-11-22 18:56:53 +0000 | [diff] [blame] | 449 | set -ex |
Maxim Kuvyrkov | bc309d5 | 2023-05-25 16:08:50 +0000 | [diff] [blame] | 450 | |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 451 | # Skip SCM-triggered builds if there are other builds in |
| 452 | # the queue. We need to process all pending bisection-triggered |
| 453 | # builds before fetching a new batch of upstream changes. |
Maxim Kuvyrkov | b487211 | 2023-07-01 18:33:31 +0000 | [diff] [blame] | 454 | # Re. skipping post-commit build if pre-commit queue is |
| 455 | # not empty -- it's just a favor to pre-commit builds. |
Maxim Kuvyrkov | eb378e4 | 2024-01-08 06:50:57 +0000 | [diff] [blame] | 456 | if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \ |
| 457 | || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then |
Maxim Kuvyrkov | b487211 | 2023-07-01 18:33:31 +0000 | [diff] [blame] | 458 | for job_type in build; do |
Maxim Kuvyrkov | e8e49eb | 2023-07-01 18:52:20 +0000 | [diff] [blame] | 459 | url="${{JOB_URL%-build/}}-$job_type" |
Laurent Alfonsi | b81499a | 2025-01-06 15:32:36 +0100 | [diff] [blame] | 460 | inQueue=$(curl --retry 5 --max-time 5 -s "$url/api/xml?tree=inQueue" \ |
Maxim Kuvyrkov | b487211 | 2023-07-01 18:33:31 +0000 | [diff] [blame] | 461 | | sed -e "s#.*<inQueue>\(.*\)</inQueue>.*#\1#") |
| 462 | if [ "$inQueue" != "false" ]; then |
| 463 | echo "SKIP SCM BUILD" |
| 464 | touch artifacts/jenkins/skip-scm-build |
| 465 | build_name="$build_name-skip-scm-build" |
| 466 | echo "$build_name" > artifacts/jenkins/build-name |
Maxim Kuvyrkov | 3782aea | 2023-05-25 15:24:41 +0000 | [diff] [blame] | 467 | |
Maxim Kuvyrkov | b487211 | 2023-07-01 18:33:31 +0000 | [diff] [blame] | 468 | # Mark build unstable aka a skipped build |
| 469 | exit 125 |
| 470 | fi |
| 471 | done |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 472 | fi |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 473 | |
| 474 | trap "" EXIT |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 475 | unstable-return: 125 |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 476 | |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 477 | - builder: |
| 478 | name: run-build-start-manifest |
| 479 | builders: |
| 480 | - shell: |
| 481 | command: | |
| 482 | #!/bin/bash |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 483 | source artifacts/jenkins/run-build.env |
Maxim Kuvyrkov | 8c8e4aa | 2023-11-22 18:56:53 +0000 | [diff] [blame] | 484 | set -ex |
Maxim Kuvyrkov | 8adf09b | 2023-07-01 15:47:55 +0000 | [diff] [blame] | 485 | |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 486 | docker_opts=( |
Maxim Kuvyrkov | bc309d5 | 2023-05-25 16:08:50 +0000 | [diff] [blame] | 487 | --distro $distro |
| 488 | --arch {docker_arch} |
| 489 | --node $NODE_NAME |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 490 | --ssh_info true |
Maxim Kuvyrkov | 843ba81 | 2024-09-30 06:24:27 +0000 | [diff] [blame] | 491 | --node_labels "$NODE_LABELS" |
Maxim Kuvyrkov | bc309d5 | 2023-05-25 16:08:50 +0000 | [diff] [blame] | 492 | ) |
| 493 | |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 494 | ./jenkins-scripts/start-container-docker.sh --prefix build_ \ |
| 495 | "${{docker_opts[@]}}" > build_container.sh |
| 496 | source build_container.sh |
| 497 | trap "cleanup_all_containers" EXIT |
| 498 | |
Maxim Kuvyrkov | 8da7e85 | 2023-05-25 16:26:30 +0000 | [diff] [blame] | 499 | # Run the build script to fetch base-artifacts/, which are |
| 500 | # required to fetch baseline sources to apply patches to in |
| 501 | # pw-apply.sh below. This also initializes the build manifest |
| 502 | # with all below settings; we then import this manifest below. |
| 503 | # |
| 504 | # The parameter __finish_after makes the build script stop |
| 505 | # after fetching the baseline and "__" avoids saving this parameter |
| 506 | # in the manifest, so that we don't see this option in the main |
| 507 | # run of the build script below. |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 508 | build_container_exec \ |
Maxim Kuvyrkov | 8da7e85 | 2023-05-25 16:26:30 +0000 | [diff] [blame] | 509 | ./jenkins-scripts/{build_script} \ |
| 510 | %%rr[top_artifacts] artifacts \ |
Maxim Kuvyrkov | 67698ea | 2024-01-05 15:26:07 +0000 | [diff] [blame] | 511 | ==rr[ci_project] '{ci_project}' \ |
| 512 | ==rr[ci_config] '{ci_config}' \ |
Maxim Kuvyrkov | 8da7e85 | 2023-05-25 16:26:30 +0000 | [diff] [blame] | 513 | $extra_build_params \ |
| 514 | --bmk_branch "$bmk_branch" \ |
| 515 | --scripts_branch "$scripts_branch" \ |
| 516 | ==rr[mode] "build" \ |
| 517 | ==rr[update_baseline] "$update_baseline" \ |
| 518 | --BUILD_URL "$BUILD_URL" \ |
Maxim Kuvyrkov | 8da7e85 | 2023-05-25 16:26:30 +0000 | [diff] [blame] | 519 | __finish_at reset_artifacts |
| 520 | |
Laurent Alfonsi | af2d985 | 2024-07-02 14:09:46 +0200 | [diff] [blame] | 521 | echo "$rr_stage" > artifacts/rr_stage.txt |
| 522 | |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 523 | cat >> artifacts/jenkins/run-build.env <<EOF |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 524 | docker_opts=(${{docker_opts[@]+$(printf "%q$IFS" "${{docker_opts[@]}}")}}) |
| 525 | source build_container.sh |
| 526 | trap "cleanup_all_containers" EXIT |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 527 | EOF |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 528 | |
| 529 | # Now that we have "trap cleanup_all_containers EXIT" in |
| 530 | # run-build.env we need to reset the trap at the end of every |
| 531 | # step to preserve container[s] for the next step. |
| 532 | trap "" EXIT |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 533 | unstable-return: 125 |
| 534 | |
| 535 | - builder: |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 536 | name: run-build-process-params |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 537 | builders: |
| 538 | - shell: |
| 539 | command: | |
| 540 | #!/bin/bash |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 541 | source artifacts/jenkins/run-build.env |
Maxim Kuvyrkov | 8c8e4aa | 2023-11-22 18:56:53 +0000 | [diff] [blame] | 542 | set -ex |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 543 | |
| 544 | branch_opt=() |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 545 | # 1 to skip jenkins-scripts |
| 546 | i=1 |
Maxim Kuvyrkov | 5529076 | 2024-01-05 15:47:34 +0000 | [diff] [blame] | 547 | for c in llvm; do |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 548 | eval "g=\$$$${{c}}_git" |
| 549 | if [ x"$g" = x"default" ]; then |
Maxim Kuvyrkov | eb378e4 | 2024-01-08 06:50:57 +0000 | [diff] [blame] | 550 | if [ x"${{BUILD_CAUSE_SCMTRIGGER-false}}" = x"true" ] \ |
| 551 | || [ x"${{BUILD_CAUSE_TIMERTRIGGER-false}}" = x"true" ]; then |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 552 | g="jenkins-scm" |
| 553 | else |
| 554 | g="baseline" |
| 555 | fi |
| 556 | fi |
| 557 | if [ x"$g" = x"jenkins-scm" ]; then |
Laurent Alfonsi | 2d48507 | 2025-05-20 16:06:45 +0000 | [diff] [blame] | 558 | eval "gb=\$GIT_BRANCH_$i" |
| 559 | gb=$(echo $gb | sed 's+origin/++') |
| 560 | eval "g=\$GIT_URL_$i#$gb" |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 561 | fi |
| 562 | i=$(($i+1)) |
Maxim Kuvyrkov | bc309d5 | 2023-05-25 16:08:50 +0000 | [diff] [blame] | 563 | |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 564 | if [ x"$g" != x"baseline" ]; then |
| 565 | build_name="$build_name-$c" |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 566 | branch_opt+=("==rr[${{c}}_git]" "$g") |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 567 | fi |
| 568 | done |
| 569 | |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 570 | echo "$build_name" > artifacts/jenkins/build-name |
| 571 | |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 572 | cat >> artifacts/jenkins/run-build.env <<EOF |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 573 | build_name="$build_name" |
Maxim Kuvyrkov | fcbaf90 | 2023-07-01 19:20:46 +0000 | [diff] [blame] | 574 | branch_opt=(${{branch_opt[@]+$(printf "%q$IFS" "${{branch_opt[@]}}")}}) |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 575 | EOF |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 576 | |
| 577 | trap "" EXIT |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 578 | unstable-return: 125 |
| 579 | |
| 580 | - builder: |
| 581 | name: run-build-main |
| 582 | builders: |
| 583 | - shell: |
| 584 | command: | |
| 585 | #!/bin/bash |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 586 | source artifacts/jenkins/run-build.env |
Maxim Kuvyrkov | 8c8e4aa | 2023-11-22 18:56:53 +0000 | [diff] [blame] | 587 | set -ex |
Maxim Kuvyrkov | 3a78c87 | 2023-05-28 10:25:15 +0000 | [diff] [blame] | 588 | |
Maxim Kuvyrkov | 86efb0b | 2023-05-29 09:58:03 +0000 | [diff] [blame] | 589 | # Run the build script to from the manifest created above. |
| 590 | # |
| 591 | # The parameter __start_at makes the build script start right |
| 592 | # where the above run finished. This allows us to use read-only |
| 593 | # bind-mount for base-artifacts/, which, otherwise, may require |
| 594 | # multi-gig rsync. |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 595 | build_container_exec \ |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 596 | ./jenkins-scripts/{build_script} \ |
Maxim Kuvyrkov | 8da7e85 | 2023-05-25 16:26:30 +0000 | [diff] [blame] | 597 | @@rr[top_artifacts] artifacts \ |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 598 | "${{branch_opt[@]}}" \ |
Maxim Kuvyrkov | 86efb0b | 2023-05-29 09:58:03 +0000 | [diff] [blame] | 599 | __start_at reset_artifacts+ & |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 600 | res=0 && wait $! || res=$? |
| 601 | |
Maxim Kuvyrkov | 5a41522 | 2023-05-25 15:43:31 +0000 | [diff] [blame] | 602 | # Update build_name |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 603 | if [ -f artifacts/results ]; then |
| 604 | build_name="$build_name-R$(tail -n1 artifacts/results)" |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 605 | fi |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 606 | if [ "$update_baseline" != "onsuccess" ]; then |
| 607 | build_name="$build_name-$update_baseline" |
| 608 | fi |
| 609 | |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 610 | if [ -f artifacts/trigger-bisect ]; then |
| 611 | build_name="$build_name-trigger-bisect" |
| 612 | fi |
| 613 | echo "$build_name" > artifacts/jenkins/build-name |
Maxim Kuvyrkov | 5a41522 | 2023-05-25 15:43:31 +0000 | [diff] [blame] | 614 | |
| 615 | # Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code, |
| 616 | # so stop here and do nothing else. From jenkins point of view ... |
| 617 | # - if $res==0: build is successful, so proceed with all |
| 618 | # followup steps -- notify, push, trigger precommit. |
| 619 | # - if $res==123: build has a regression, so proceed with triggering |
| 620 | # followup builds and sending precommit notifications; but stop |
| 621 | # before run-push-baseline by checking artifacts/failed. |
| 622 | # - if $res is anything else: build has an unexpected failure, so |
| 623 | # skip the rest of the steps by setting UNSTABLE build status. |
| 624 | # This will cause all followup conditional-steps to skip due to |
| 625 | # "current-status" condition. |
| 626 | # |
| 627 | # See comment before round-robin.sh:check_regression() for details. |
| 628 | case $res in |
Maxim Kuvyrkov | 8441bde | 2023-06-30 16:07:03 +0000 | [diff] [blame] | 629 | 0) |
| 630 | ;; |
Maxim Kuvyrkov | 5a41522 | 2023-05-25 15:43:31 +0000 | [diff] [blame] | 631 | 123) |
| 632 | echo 123 > artifacts/failed |
| 633 | ;; |
| 634 | *) |
| 635 | res=125 |
| 636 | ;; |
| 637 | esac |
| 638 | |
| 639 | if [ $res = 125 ]; then |
| 640 | # We had unexpected failure in the build scripts, so can't |
| 641 | # proceed with triggers and notifications. Mark this build |
| 642 | # as UNSTABLE, which will skip all following conditional-steps. |
| 643 | exit 125 |
| 644 | fi |
Maxim Kuvyrkov | 307e26e | 2023-08-11 10:41:28 +0000 | [diff] [blame] | 645 | |
| 646 | cat >> artifacts/jenkins/run-build.env <<EOF |
| 647 | build_name="$build_name" |
| 648 | EOF |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 649 | |
| 650 | trap "" EXIT |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 651 | unstable-return: 125 |
Maxim Kuvyrkov | ac7ff47 | 2023-06-28 07:35:50 +0000 | [diff] [blame] | 652 | |
| 653 | - builder: |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 654 | name: run-build-fini |
| 655 | builders: |
| 656 | - shell: |
| 657 | command: | |
| 658 | #!/bin/bash |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 659 | source artifacts/jenkins/run-build.env |
Maxim Kuvyrkov | 8c8e4aa | 2023-11-22 18:56:53 +0000 | [diff] [blame] | 660 | set -ex |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 661 | # The "trap cleanup_all_containers EXIT" statement in |
| 662 | # artifacts/jenkins/run-build.env will remove build and precommit |
| 663 | # containers. |
| 664 | |
| 665 | - builder: |
Maxim Kuvyrkov | ac7ff47 | 2023-06-28 07:35:50 +0000 | [diff] [blame] | 666 | name: run-build |
| 667 | builders: |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 668 | - conditional-step: |
| 669 | condition-kind: current-status |
| 670 | steps: |
Maxim Kuvyrkov | 5deb8a8 | 2023-06-30 13:51:06 +0000 | [diff] [blame] | 671 | - run-build-init: |
Maxim Kuvyrkov | 02987c1 | 2024-01-10 09:43:41 +0000 | [diff] [blame] | 672 | precommit: false |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 673 | - build-name-setter: |
| 674 | name: 'artifacts/jenkins/build-name' |
| 675 | file: true |
| 676 | - conditional-step: |
| 677 | condition-kind: current-status |
| 678 | steps: |
Maxim Kuvyrkov | 5deb8a8 | 2023-06-30 13:51:06 +0000 | [diff] [blame] | 679 | - run-build-skip-if-queue: |
| 680 | dummy: dummy |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 681 | - build-name-setter: |
| 682 | name: 'artifacts/jenkins/build-name' |
| 683 | file: true |
| 684 | - conditional-step: |
| 685 | condition-kind: current-status |
| 686 | steps: |
| 687 | - run-build-start-manifest: |
Maxim Kuvyrkov | 67698ea | 2024-01-05 15:26:07 +0000 | [diff] [blame] | 688 | ci_project: '{ci_project}' |
| 689 | ci_config: '{ci_config}' |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 690 | build_script: '{build_script}' |
| 691 | docker_arch: '{docker_arch}' |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 692 | - build-name-setter: |
| 693 | name: 'artifacts/jenkins/build-name' |
| 694 | file: true |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 695 | - conditional-step: |
| 696 | condition-kind: current-status |
| 697 | steps: |
Maxim Kuvyrkov | d3bf827 | 2023-06-28 17:51:53 +0000 | [diff] [blame] | 698 | - run-build-process-params: |
Maxim Kuvyrkov | 5529076 | 2024-01-05 15:47:34 +0000 | [diff] [blame] | 699 | dummy: dummy |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 700 | - build-name-setter: |
| 701 | name: 'artifacts/jenkins/build-name' |
| 702 | file: true |
| 703 | - conditional-step: |
| 704 | condition-kind: current-status |
| 705 | steps: |
Laurent Alfonsi | 87ab4de | 2024-04-25 07:34:20 +0200 | [diff] [blame] | 706 | - run-push-baseline: |
| 707 | build_script: '{build_script}' |
Laurent Alfonsi | 5a667f7 | 2024-04-25 14:49:44 +0200 | [diff] [blame] | 708 | commit_artifacts: 'false' |
Laurent Alfonsi | 87ab4de | 2024-04-25 07:34:20 +0200 | [diff] [blame] | 709 | - conditional-step: |
| 710 | condition-kind: current-status |
| 711 | steps: |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 712 | - run-build-main: |
| 713 | build_script: '{build_script}' |
| 714 | - build-name-setter: |
| 715 | name: 'artifacts/jenkins/build-name' |
| 716 | file: true |
| 717 | - conditional-step: |
| 718 | condition-kind: current-status |
| 719 | steps: |
Maxim Kuvyrkov | ccd89ea | 2023-06-30 17:16:10 +0000 | [diff] [blame] | 720 | - trigger-followup-builds-1: |
Maxim Kuvyrkov | 52c3cc2 | 2024-01-05 15:40:26 +0000 | [diff] [blame] | 721 | dummy: dummy |
Maxim Kuvyrkov | ccd89ea | 2023-06-30 17:16:10 +0000 | [diff] [blame] | 722 | - trigger-followup-builds-2: |
Maxim Kuvyrkov | 52c3cc2 | 2024-01-05 15:40:26 +0000 | [diff] [blame] | 723 | ci_project: '{ci_project}' |
| 724 | ci_config: '{ci_config}' |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 725 | - build-name-setter: |
| 726 | name: 'artifacts/jenkins/build-name' |
| 727 | file: true |
| 728 | - conditional-step: |
| 729 | condition-kind: current-status |
| 730 | steps: |
Maxim Kuvyrkov | 333b296 | 2023-08-14 08:55:46 +0000 | [diff] [blame] | 731 | - run-build-notify: |
Thiago Jung Bauermann | 676c14a | 2023-09-12 12:37:40 -0300 | [diff] [blame] | 732 | build_script: '{build_script}' |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 733 | - build-name-setter: |
| 734 | name: 'artifacts/jenkins/build-name' |
| 735 | file: true |
| 736 | - conditional-step: |
| 737 | condition-kind: current-status |
| 738 | steps: |
Maxim Kuvyrkov | dc5adc1 | 2023-07-01 08:02:24 +0000 | [diff] [blame] | 739 | - run-exit-on-failure: |
| 740 | dummy: dummy |
| 741 | - build-name-setter: |
| 742 | name: 'artifacts/jenkins/build-name' |
| 743 | file: true |
| 744 | - conditional-step: |
| 745 | condition-kind: current-status |
| 746 | steps: |
Maxim Kuvyrkov | 5deb8a8 | 2023-06-30 13:51:06 +0000 | [diff] [blame] | 747 | - run-push-baseline: |
Maxim Kuvyrkov | 570e5ea | 2023-07-01 19:43:07 +0000 | [diff] [blame] | 748 | build_script: '{build_script}' |
Laurent Alfonsi | aa30fa7 | 2024-04-26 10:53:34 +0200 | [diff] [blame] | 749 | commit_artifacts: 'true' |
Laurent Alfonsi | a8284ec | 2023-11-16 10:05:38 +0100 | [diff] [blame] | 750 | - conditional-step: |
| 751 | condition-kind: current-status |
| 752 | steps: |
| 753 | - run-push-lnt-results: |
Maxim Kuvyrkov | 67698ea | 2024-01-05 15:26:07 +0000 | [diff] [blame] | 754 | ci_project: '{ci_project}' |
| 755 | ci_config: '{ci_config}' |
Maxim Kuvyrkov | 9969509 | 2023-06-28 09:52:05 +0000 | [diff] [blame] | 756 | - build-name-setter: |
| 757 | name: 'artifacts/jenkins/build-name' |
| 758 | file: true |
Maxim Kuvyrkov | 3ab321b | 2023-08-14 08:28:29 +0000 | [diff] [blame] | 759 | - conditional-step: |
| 760 | condition-kind: current-status |
| 761 | steps: |
| 762 | - run-build-fini: |
| 763 | dummy: dummy |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 764 | |
Maxim Kuvyrkov | ac7ff47 | 2023-06-28 07:35:50 +0000 | [diff] [blame] | 765 | |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 766 | - publisher: |
| 767 | name: build-publishers |
| 768 | publishers: |
| 769 | - archive: |
| 770 | artifacts: 'artifacts/**' |
Laurent Alfonsi | aa30fa7 | 2024-04-26 10:53:34 +0200 | [diff] [blame] | 771 | latest-only: false |
Laurent Alfonsi | cbf9a99 | 2023-11-23 16:09:27 +0100 | [diff] [blame] | 772 | - html-publisher: |
| 773 | name: 'HTML Report' |
| 774 | dir: 'artifacts/jenkins' |
| 775 | files: 'status.html' |
| 776 | keep-all: true |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 777 | - email-ext: |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 778 | recipients: | |
Maxim Kuvyrkov | f2ea7b7 | 2023-08-16 07:59:14 +0000 | [diff] [blame] | 779 | ${{FILE,path="artifacts/jenkins/mail-recipients.txt"}} |
| 780 | reply-to: linaro-toolchain@lists.linaro.org |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 781 | subject: | |
Maxim Kuvyrkov | f2ea7b7 | 2023-08-16 07:59:14 +0000 | [diff] [blame] | 782 | ${{FILE,path="artifacts/jenkins/mail-subject.txt"}} |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 783 | content-type: text |
| 784 | body: | |
Maxim Kuvyrkov | f2ea7b7 | 2023-08-16 07:59:14 +0000 | [diff] [blame] | 785 | ${{FILE,path="artifacts/jenkins/mail-body.txt"}} |
| 786 | failure: {email_on_failure} |
| 787 | success: {email_on_success} |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 788 | aborted: false |
| 789 | send-to: |
| 790 | - recipients |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 791 | - email-ext: |
| 792 | recipients: | |
Maxim Kuvyrkov | f2ea7b7 | 2023-08-16 07:59:14 +0000 | [diff] [blame] | 793 | ${{FILE,path="artifacts/jenkins/error-mail-recipients.txt"}} |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 794 | body: | |
Maxim Kuvyrkov | f2ea7b7 | 2023-08-16 07:59:14 +0000 | [diff] [blame] | 795 | ${{FILE,path="artifacts/jenkins/error-mail-body.txt"}} |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 796 | failure: true |
| 797 | success: true |
| 798 | aborted: true |
| 799 | send-to: |
| 800 | - recipients |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 801 | |
| 802 | - parameter: |
| 803 | name: bisect-parameters |
| 804 | parameters: |
| 805 | - string: |
| 806 | name: current_project |
| 807 | default: "" |
| 808 | description: "Project to bisect" |
| 809 | - string: |
| 810 | name: bad_git |
| 811 | default: "" |
| 812 | description: "Bad git_url#branch/SHA1" |
| 813 | - file: |
| 814 | name: jenkins-scripts/replay_log |
| 815 | description: "Replay part of bisect using provided bisect log" |
| 816 | - default-parameters: |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 817 | distro: '{distro}' |
| 818 | |
| 819 | - wrapper: |
| 820 | name: bisect-wrappers |
| 821 | wrappers: |
| 822 | - build-wrappers: |
| 823 | timeout: '{timeout}' |
| 824 | |
| 825 | - builder: |
| 826 | name: run-bisect |
| 827 | builders: |
| 828 | - shell: |
| 829 | command: | |
| 830 | #!/bin/bash |
| 831 | set -ex |
| 832 | # Delete artifacts now to avoid re-using stale artifacts if |
| 833 | # below docker-run.sh fails to start up a container. |
| 834 | rm -rf artifacts/ |
| 835 | mkdir -p artifacts/jenkins |
| 836 | build_name="#$BUILD_NUMBER-$current_project" |
| 837 | echo "$build_name" > artifacts/jenkins/build-name |
| 838 | |
Maxim Kuvyrkov | 1fbec98 | 2023-07-01 18:39:54 +0000 | [diff] [blame] | 839 | cat >> artifacts/jenkins/run-build.env <<EOF |
| 840 | build_name="$build_name" |
| 841 | EOF |
| 842 | |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 843 | ./jenkins-scripts/docker-run.sh \ |
| 844 | --distro $distro \ |
| 845 | --ssh_info true \ |
Maxim Kuvyrkov | 687da88 | 2023-04-10 15:37:40 +0000 | [diff] [blame] | 846 | --arch {docker_arch} \ |
| 847 | --node $NODE_NAME \ |
Maxim Kuvyrkov | 843ba81 | 2024-09-30 06:24:27 +0000 | [diff] [blame] | 848 | --node_labels "$NODE_LABELS" \ |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 849 | -- \ |
Maxim Kuvyrkov | d2207ec | 2024-06-28 14:10:30 +0000 | [diff] [blame] | 850 | ./jenkins-scripts/rr/round-robin-bisect.sh \ |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 851 | %%rel_artifacts artifacts \ |
| 852 | --BUILD_URL "$BUILD_URL" \ |
| 853 | --current_project "$current_project" \ |
| 854 | --bad_git "$bad_git" \ |
| 855 | --replay_log "$(pwd)/jenkins-scripts/replay_log" \ |
| 856 | --build_script "./jenkins-scripts/{build_script}" \ |
| 857 | -- \ |
Maxim Kuvyrkov | 67698ea | 2024-01-05 15:26:07 +0000 | [diff] [blame] | 858 | ==rr[ci_project] '{ci_project}' \ |
| 859 | ==rr[ci_config] '{ci_config}' \ |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 860 | $extra_build_params \ |
| 861 | --bmk_branch "$bmk_branch" \ |
| 862 | --scripts_branch "$scripts_branch" & |
| 863 | res=0 && wait $! || res=$? |
| 864 | |
| 865 | if [ $res != 0 ]; then |
| 866 | echo $res > artifacts/failed |
| 867 | fi |
| 868 | unstable-return: 125 |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 869 | - build-name-setter: |
| 870 | name: 'artifacts/jenkins/build-name' |
| 871 | file: true |
Maxim Kuvyrkov | b9fe6a9 | 2023-05-29 15:15:14 +0000 | [diff] [blame] | 872 | - conditional-step: |
Maxim Kuvyrkov | b9fe6a9 | 2023-05-29 15:15:14 +0000 | [diff] [blame] | 873 | condition-kind: current-status |
| 874 | steps: |
Maxim Kuvyrkov | c424567 | 2023-06-30 17:22:57 +0000 | [diff] [blame] | 875 | - trigger-followup-builds-1: |
Maxim Kuvyrkov | 52c3cc2 | 2024-01-05 15:40:26 +0000 | [diff] [blame] | 876 | dummy: dummy |
Maxim Kuvyrkov | c424567 | 2023-06-30 17:22:57 +0000 | [diff] [blame] | 877 | - trigger-followup-builds-2: |
Maxim Kuvyrkov | 52c3cc2 | 2024-01-05 15:40:26 +0000 | [diff] [blame] | 878 | ci_project: '{ci_project}' |
| 879 | ci_config: '{ci_config}' |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 880 | - conditional-step: |
| 881 | condition-kind: current-status |
| 882 | steps: |
| 883 | - shell: | |
| 884 | #!/bin/bash |
| 885 | set -ex |
Maxim Kuvyrkov | b9fe6a9 | 2023-05-29 15:15:14 +0000 | [diff] [blame] | 886 | |
Maxim Kuvyrkov | 7b799fb | 2023-06-28 16:01:34 +0000 | [diff] [blame] | 887 | if [ -f artifacts/failed ]; then |
| 888 | # Mark failed build as FAILURE; no further steps will run. |
| 889 | exit $(cat artifacts/failed) |
| 890 | fi |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 891 | |
| 892 | - publisher: |
| 893 | name: bisect-publishers |
| 894 | publishers: |
| 895 | - archive: |
| 896 | artifacts: 'artifacts/**' |
| 897 | latest-only: false |
| 898 | - email-ext: |
| 899 | recipients: | |
| 900 | maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org |
| 901 | failure: true |
| 902 | success: false |
| 903 | aborted: true |
| 904 | send-to: |
| 905 | - recipients |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 906 | #END: tcwg/round-robin.yaml.inc |
| 907 | |
| 908 | - job-template: |
Laurent Alfonsi | 9b9125f | 2023-02-24 17:25:48 +0100 | [diff] [blame] | 909 | name: tcwg_bmk-code_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-build |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 910 | project-type: freestyle |
| 911 | defaults: global |
| 912 | properties: |
Laurent Alfonsi | 2ac30aa | 2023-08-23 16:13:37 +0200 | [diff] [blame] | 913 | - build-properties: |
| 914 | ci_project: '{ci_project}' |
| 915 | ci_config: '{ci_config}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 916 | parameters: |
| 917 | - build-parameters: |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 918 | default_git: 'default' |
| 919 | distro: '{distro}' |
Maxim Kuvyrkov | 186ad34 | 2023-09-07 12:08:44 +0000 | [diff] [blame] | 920 | # We are waiting for tcwg-bmk-apm-* machines to get PDU control, |
| 921 | # so that we can recover from crashes. |
| 922 | # See https://linaro.atlassian.net/browse/STG-4212 . |
| 923 | disabled: true |
Maxim Kuvyrkov | 7585eb9 | 2023-02-24 18:32:15 +0000 | [diff] [blame] | 924 | node: tcwg-build_bmk && tcwg-armv8_64 |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 925 | concurrent: false |
Laurent Alfonsi | 6375a16 | 2023-02-23 11:57:15 +0100 | [diff] [blame] | 926 | display-name: 'TCWG Build {ci_project}--{ci_config}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 927 | workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER |
| 928 | scm: |
| 929 | - build-scms: |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 930 | llvm_url: '{llvm_url}' |
| 931 | llvm_branch: '{llvm_branch}' |
| 932 | triggers: |
| 933 | - pollscm: |
| 934 | cron: '{cron_schedule}' |
| 935 | wrappers: |
| 936 | - build-wrappers: |
Laurent Alfonsi | 9f55e93 | 2023-02-20 12:09:13 +0100 | [diff] [blame] | 937 | timeout: 600 |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 938 | builders: |
| 939 | - run-build: |
Maxim Kuvyrkov | 67698ea | 2024-01-05 15:26:07 +0000 | [diff] [blame] | 940 | ci_project: '{ci_project}' |
| 941 | ci_config: '{ci_config}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 942 | build_script: 'tcwg_bmk-build.sh' |
Laurent Alfonsi | eaf4750 | 2023-03-09 11:09:05 +0100 | [diff] [blame] | 943 | docker_arch: '{docker_arch}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 944 | publishers: |
Maxim Kuvyrkov | f2ea7b7 | 2023-08-16 07:59:14 +0000 | [diff] [blame] | 945 | - build-publishers: |
| 946 | email_on_failure: false |
| 947 | email_on_success: true |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 948 | |
| 949 | - job-template: |
Laurent Alfonsi | 9b9125f | 2023-02-24 17:25:48 +0100 | [diff] [blame] | 950 | name: tcwg_bmk-code_speed-cpu2017speed--llvm-{target}-{toolchain_ver}-{cflags}-bisect |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 951 | project-type: freestyle |
| 952 | defaults: global |
| 953 | properties: |
Laurent Alfonsi | 2ac30aa | 2023-08-23 16:13:37 +0200 | [diff] [blame] | 954 | - bisect-properties: |
| 955 | ci_project: '{ci_project}' |
| 956 | ci_config: '{ci_config}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 957 | parameters: |
| 958 | - bisect-parameters: |
| 959 | distro: '{distro}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 960 | disabled: false |
Maxim Kuvyrkov | 5f011c8 | 2023-02-25 12:38:25 +0000 | [diff] [blame] | 961 | node: tcwg-build_bmk && tcwg-armv8_64 |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 962 | concurrent: false |
Laurent Alfonsi | 6375a16 | 2023-02-23 11:57:15 +0100 | [diff] [blame] | 963 | display-name: 'TCWG Bisect {ci_project}--{ci_config}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 964 | workspace: workspace/tcwg_bmk_$EXECUTOR_NUMBER |
| 965 | scm: |
| 966 | - jenkins-scripts |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 967 | wrappers: |
| 968 | - bisect-wrappers: |
| 969 | timeout: 2880 |
| 970 | builders: |
| 971 | - run-bisect: |
Maxim Kuvyrkov | 67698ea | 2024-01-05 15:26:07 +0000 | [diff] [blame] | 972 | ci_project: '{ci_project}' |
| 973 | ci_config: '{ci_config}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 974 | build_script: 'tcwg_bmk-build.sh' |
Laurent Alfonsi | eaf4750 | 2023-03-09 11:09:05 +0100 | [diff] [blame] | 975 | docker_arch: '{docker_arch}' |
Laurent Alfonsi | 701c52f | 2023-02-16 11:38:46 +0100 | [diff] [blame] | 976 | publishers: |
| 977 | - bisect-publishers |
Laurent Alfonsi | 9da56d8 | 2025-03-27 07:16:00 +0100 | [diff] [blame] | 978 | |
Laurent Alfonsi | 50d9de9 | 2025-05-27 13:04:04 +0200 | [diff] [blame] | 979 | # checksum: 4d991856718b7b7a1b393b7697625af8 |