blob: 654175c28963bda84d98d6533190be1235ecd3db [file] [log] [blame]
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -06001- job:
Leonardo Sandovalffaee982021-11-11 10:27:57 -06002 name: tf-a-main
Boyan Karatotev5c87c072023-02-10 11:04:58 +00003 node: docker-amd64-tf-a-jammy
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -06004 project-type: multijob
5 concurrent: true
6 disabled: false
7 description: Main CI job for Trusted Firmware.
8 properties:
9 - throttle:
10 option: project
11 enabled: true
12 max-total: 5
13 - build-discarder:
Leonardo Sandovala4feb552021-03-02 12:10:21 -060014 days-to-keep: 14
15 num-to-keep: 60
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060016 - authorization:
Leonardo Sandovalebca8822021-01-25 18:20:04 -060017 !include: authorization.yaml.inc
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060018 parameters:
19 - string:
20 name: TF_GERRIT_PROJECT
21 default: 'TF-A/trusted-firmware-a'
22 - string:
23 name: TF_GERRIT_BRANCH
Leonardo Sandoval3da340d2021-02-09 14:53:30 -060024 default: 'refs/heads/integration'
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060025 - string:
26 name: TF_GERRIT_REFSPEC
Leonardo Sandoval3da340d2021-02-09 14:53:30 -060027 default: '+refs/heads/integration:refs/remotes/origin/integration'
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060028 - string:
29 name: TFTF_GERRIT_PROJECT
30 default: 'TF-A/tf-a-tests'
31 - string:
32 name: TFTF_GERRIT_BRANCH
Leonardo Sandoval3da340d2021-02-09 14:53:30 -060033 default: 'refs/heads/master'
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060034 - string:
35 name: TFTF_GERRIT_REFSPEC
Leonardo Sandoval3da340d2021-02-09 14:53:30 -060036 default: '+refs/heads/master:refs/remotes/origin/master'
Leonardo Sandovald1b6b5a2021-09-13 12:06:26 -050037 - string:
Paul Sokolovsky52038942023-03-15 16:49:57 +070038 name: SPM_REFSPEC
39 default: '+refs/heads/master:refs/remotes/origin/master'
40 description: |
41 SPM(Hafnium) refspec to use. The master branch is used by default.
42 - string:
Zelalem Awekee8801df2021-10-25 13:41:44 -050043 name: CI_REFSPEC
44 default: '+refs/heads/master:refs/remotes/origin/master'
45 - string:
Leonardo Sandovald1b6b5a2021-09-13 12:06:26 -050046 name: SHARE_FOLDER
47 default: '/srv/shared/${JOB_NAME}/${BUILD_NUMBER}'
48 description: 'Folder containing shared repositories for downstream pipeline jobs'
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060049 wrappers:
50 - credentials-binding:
51 - ssh-user-private-key:
52 credential-id: TFA_CI_BOT_USER_SSH_KEY
53 key-file-variable: CI_BOT_KEY
54 username-variable: CI_BOT_USERNAME
55 passphrase-variable: ''
56 - workspace-cleanup
57 - timestamps
58 builders:
Leonardo Sandovald1b6b5a2021-09-13 12:06:26 -050059 - shell:
60 !include-raw: scripts/clone.sh
Fathi Boudra9c8a9452020-12-08 22:16:57 +010061 - shell: |
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060062 #!/bin/bash
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060063 set -e
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060064 cat << EOF > tf-a-env.param
65 GERRIT_PROJECT=${TF_GERRIT_PROJECT}
66 GERRIT_BRANCH=${TF_GERRIT_BRANCH}
67 GERRIT_REFSPEC=${TF_GERRIT_REFSPEC}
Milosz Wasilewski10438582020-12-03 11:36:21 +000068 QA_SERVER_PROJECT=${JOB_NAME}
69 QA_SERVER_VERSION=${BUILD_NUMBER}
Leonardo Sandovald1b6b5a2021-09-13 12:06:26 -050070 SHARE_FOLDER=${SHARE_FOLDER}
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060071 EOF
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060072 cat << EOF > tf-a-tests-env.param
73 GERRIT_PROJECT=${TFTF_GERRIT_PROJECT}
74 GERRIT_BRANCH=${TFTF_GERRIT_BRANCH}
75 GERRIT_REFSPEC=${TFTF_GERRIT_REFSPEC}
Milosz Wasilewski10438582020-12-03 11:36:21 +000076 QA_SERVER_PROJECT=${JOB_NAME}
77 QA_SERVER_VERSION=${BUILD_NUMBER}
Leonardo Sandovald1b6b5a2021-09-13 12:06:26 -050078 SHARE_FOLDER=${SHARE_FOLDER}
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060079 EOF
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060080 - multijob:
81 name: Run static checks on the code
82 condition: COMPLETED
83 projects:
Leonardo Sandovalffaee982021-11-11 10:27:57 -060084 - name: tf-a-static-checks
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060085 current-parameters: true
86 kill-phase-on: NEVER
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060087 property-file: tf-a-env.param
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060088 - multijob:
89 name: Build Trusted Firmware
90 condition: COMPLETED
91 projects:
Leonardo Sandovalffaee982021-11-11 10:27:57 -060092 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +030093 alias: tf-l1-build-fvp tf-l2-build-fvp
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -060094 current-parameters: true
95 kill-phase-on: NEVER
96 predefined-parameters: |
97 TEST_GROUPS=tf-l1-build-fvp tf-l2-build-fvp
98 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -060099 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300100 alias: tf-l1-build-juno tf-l2-build-juno
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600101 current-parameters: true
102 kill-phase-on: NEVER
103 predefined-parameters: TEST_GROUPS=tf-l1-build-juno tf-l2-build-juno
104 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600105 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300106 alias: tf-l1-build-plat
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600107 current-parameters: true
108 kill-phase-on: NEVER
109 predefined-parameters: TEST_GROUPS=tf-l1-build-plat
110 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600111 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300112 alias: tf-l1-build-clang
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600113 current-parameters: true
114 kill-phase-on: NEVER
115 predefined-parameters: TEST_GROUPS=tf-l1-build-clang
116 property-file: tf-a-env.param
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600117 - multijob:
Manish Pandeyb5fcc442022-06-20 14:08:45 +0100118 name: TFTF Tests for FVP
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600119 condition: COMPLETED
120 projects:
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600121 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300122 alias: tftf-l2-fwu
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600123 current-parameters: true
124 kill-phase-on: NEVER
125 predefined-parameters: TEST_GROUPS=tftf-l2-fwu
126 property-file: tf-a-tests-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600127 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300128 alias: tftf-l1-fvp tftf-l2-fvp-auxiliary
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600129 current-parameters: true
130 kill-phase-on: NEVER
Manish Pandeyb5fcc442022-06-20 14:08:45 +0100131 predefined-parameters: TEST_GROUPS=tftf-l1-fvp tftf-l2-fvp-auxiliary
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600132 property-file: tf-a-tests-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600133 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300134 alias: tftf-l2-fvp tftf-l2-fvp-dynamiq
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600135 current-parameters: true
136 kill-phase-on: NEVER
137 predefined-parameters: TEST_GROUPS=tftf-l2-fvp tftf-l2-fvp-dynamiq
138 property-file: tf-a-tests-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600139 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300140 alias: tftf-l2-extensive-tests-fvp
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600141 current-parameters: true
142 kill-phase-on: NEVER
143 predefined-parameters: TEST_GROUPS=tftf-l2-extensive-tests-fvp
144 property-file: tf-a-tests-env.param
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600145 - multijob:
146 name: Boot up to the Linux shell prompt
147 condition: COMPLETED
148 projects:
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600149 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300150 alias: tf-l2-boot-tests-foundation
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600151 current-parameters: true
152 kill-phase-on: NEVER
153 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-foundation
154 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600155 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300156 alias: tf-l2-boot-tests-aarch32
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600157 current-parameters: true
158 kill-phase-on: NEVER
159 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-aarch32
160 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600161 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300162 alias: tf-l2-boot-tests-rootfs
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600163 current-parameters: true
164 kill-phase-on: NEVER
165 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-rootfs
166 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600167 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300168 alias: tf-l2-boot-tests-spm-mm
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600169 current-parameters: true
170 kill-phase-on: NEVER
Leonardo Sandoval67ac6f12020-12-10 11:02:26 -0600171 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-spm-mm
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600172 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600173 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300174 alias: spm-l2-boot-tests
Leonardo Sandoval0e0ee892021-02-16 10:39:51 -0600175 current-parameters: true
176 kill-phase-on: NEVER
177 predefined-parameters: TEST_GROUPS=spm-l2-boot-tests
178 property-file: tf-a-env.param
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600179 - multijob:
180 name: Boot up to the Linux shell prompt - Part 2
181 condition: COMPLETED
182 projects:
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600183 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300184 alias: tf-l2-boot-tests-misc
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600185 current-parameters: true
186 kill-phase-on: NEVER
187 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-misc
188 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600189 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300190 alias: tf-l2-boot-tests-latest
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600191 current-parameters: true
192 kill-phase-on: NEVER
193 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-latest
194 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600195 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300196 alias: tf-l2-boot-tests-cortex
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600197 current-parameters: true
198 kill-phase-on: NEVER
199 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-cortex
200 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600201 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300202 alias: tf-l2-boot-tests-gicv2
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600203 current-parameters: true
204 kill-phase-on: NEVER
205 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-gicv2
206 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600207 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300208 alias: tf-l2-boot-tests-bl2_el3
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600209 current-parameters: true
210 kill-phase-on: NEVER
211 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-bl2_el3
212 property-file: tf-a-env.param
Harrison Mutai521b3c82022-11-08 10:18:15 +0000213 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300214 alias: qemu-boot-tests
Harrison Mutai521b3c82022-11-08 10:18:15 +0000215 current-parameters: true
216 kill-phase-on: NEVER
217 predefined-parameters: TEST_GROUPS=qemu-boot-tests
218 property-file: tf-a-env.param
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600219 - multijob:
Manish Pandeyb5fcc442022-06-20 14:08:45 +0100220 name: Juno Boot Tests
221 condition: COMPLETED
222 projects:
223 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300224 alias: tf-l1-boot-tests-juno
Manish Pandeyb5fcc442022-06-20 14:08:45 +0100225 current-parameters: true
226 kill-phase-on: NEVER
227 predefined-parameters: TEST_GROUPS=tf-l1-boot-tests-juno
228 property-file: tf-a-env.param
229 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300230 alias: tf-l2-boot-tests-juno
Manish Pandeyb5fcc442022-06-20 14:08:45 +0100231 current-parameters: true
232 kill-phase-on: NEVER
233 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-juno
234 property-file: tf-a-env.param
235 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300236 alias: tftf-l1-juno
Manish Pandeyb5fcc442022-06-20 14:08:45 +0100237 current-parameters: true
238 kill-phase-on: NEVER
239 predefined-parameters: TEST_GROUPS=tftf-l1-juno
240 property-file: tf-a-env.param
241 - multijob:
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600242 name: Miscellaneous tests
243 condition: COMPLETED
244 projects:
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600245 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300246 alias: tf-l3-boot-tests-css
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600247 current-parameters: true
248 kill-phase-on: NEVER
249 predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-css
250 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600251 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300252 alias: tf-l3-boot-tests-spm-mm
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600253 current-parameters: true
254 kill-phase-on: NEVER
Leonardo Sandoval67ac6f12020-12-10 11:02:26 -0600255 predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-spm-mm
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600256 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600257 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300258 alias: tf-l3-boot-tests-ras
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600259 current-parameters: true
260 kill-phase-on: NEVER
261 predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-ras
262 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600263 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300264 alias: tf-l3-boot-tests-misc
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600265 current-parameters: true
266 kill-phase-on: NEVER
267 predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-misc
268 property-file: tf-a-env.param
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600269 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300270 alias: spm-l3-boot-tests
Leonardo Sandoval0e0ee892021-02-16 10:39:51 -0600271 current-parameters: true
272 kill-phase-on: NEVER
273 predefined-parameters: TEST_GROUPS=spm-l3-boot-tests
274 property-file: tf-a-env.param
Arthur Shee4fa0232022-11-03 21:05:20 -0700275 - name: tf-a-ci-gateway
Paul Sokolovsky77be8fa2023-01-14 09:34:55 +0300276 alias: tf-l1-boot-tests-plat
Arthur Shee4fa0232022-11-03 21:05:20 -0700277 current-parameters: true
278 kill-phase-on: NEVER
279 predefined-parameters: TEST_GROUPS=tf-l1-boot-tests-plat
280 property-file: tf-a-env.param
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600281 - multijob:
282 name: Code coverage
283 condition: COMPLETED
284 projects:
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600285 - name: tf-a-ci-gateway
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600286 current-parameters: true
287 kill-phase-on: NEVER
288 predefined-parameters: TEST_GROUPS=tf-l3-code-coverage
289 property-file: tf-a-env.param
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600290 - multijob:
291 name: Run doc build check
292 condition: COMPLETED
293 projects:
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600294 - name: tf-a-ci-gateway
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600295 current-parameters: true
296 kill-phase-on: NEVER
297 predefined-parameters: TEST_GROUPS=tf-l1-check-docs
298 property-file: tf-a-env.param
Harrison Mutaiee250c72022-08-05 16:28:27 +0100299 - multijob:
Chris Kaydd569e62023-02-24 13:03:13 +0000300 name: Generate visualizations
301 condition: COMPLETED
302 projects:
303 - name: tf-a-sloc-visualization
304 current-parameters: true
305 kill-phase-on: NEVER
306 property-file: tf-a-env.param
307 - name: tf-a-test-category-visualization
308 current-parameters: true
309 kill-phase-on: NEVER
310 property-file: tf-a-env.param
311 - name: tf-a-test-result-visualization
312 current-parameters: true
313 kill-phase-on: NEVER
314 predefined-parameters: TARGET_BUILD=${JOB_NAME}/${BUILD_NUMBER}
315 property-file: tf-a-env.param
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600316 # Run the unstable TF-A Tests at the end but do not let their results
317 # participate in the job's success/failure.
318 - trigger-builds:
Leonardo Sandovalffaee982021-11-11 10:27:57 -0600319 - project: tf-a-ci-gateway
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600320 current-parameters: True
321 property-file: tf-a-tests-env.param
322 property-file-fail-on-missing: True
323 predefined-parameters: TEST_GROUPS=tftf-unstable
324 block: True
325 block-thresholds:
326 build-step-failure-threshold: never
327 unstable-threshold: never
328 failure-threshold: never
Leonardo Sandoval2902d2f2020-11-25 12:32:31 -0600329 # If all tests passed, catch up the master branch with integration
330 - conditional-step:
331 condition-kind: current-status
332 condition-best: SUCCESS
333 condition-worst: SUCCESS
334 steps:
Manish V Badarkheccb7c9e2023-01-05 15:58:21 +0000335 - shell: |-
336 #!/bin/bash
337 if [ $MULTIJOB_FAILED -eq 0 ]; then
338 echo "Proceed with integration->master fast-forward merge"
339 bash "${WORKSPACE}/tf-a-ci-scripts/script/scratch_scripts/fast-forward-master.sh"
340 else
341 echo "Do not proceed with integration->master merge as sub-jobs failed"
342 fi