blob: e4962e723dbfe27cded88bf808a1c12505951486 [file] [log] [blame]
Paul Sokolovsky04b2e1f2023-05-18 00:45:31 +03001- job:
2 name: tf-a-lts2.8-main
Paul Sokolovsky209f6632023-06-01 20:34:54 +03003 node: docker-amd64-tf-a-lts2.8-jammy
Paul Sokolovsky04b2e1f2023-05-18 00:45:31 +03004 project-type: multijob
5 concurrent: true
6 disabled: false
7 description: Main CI job for Trusted Firmware.
8 properties:
Arthur She0cfe3642025-01-10 21:49:38 -08009 - throttle:
10 option: project
11 enabled: true
12 max-total: 5
13 - build-discarder:
14 days-to-keep: 60
15 num-to-keep: 30
Paul Sokolovsky04b2e1f2023-05-18 00:45:31 +030016 parameters:
Arthur She0cfe3642025-01-10 21:49:38 -080017 - string:
18 name: TF_GERRIT_PROJECT
19 default: 'TF-A/trusted-firmware-a'
20 - string:
21 name: TF_GERRIT_BRANCH
22 default: 'refs/heads/lts-v2.8'
23 - string:
24 name: TF_GERRIT_REFSPEC
25 default: '+refs/heads/lts-v2.8:refs/remotes/origin/lts-v2.8'
26 - string:
27 name: TFTF_GERRIT_PROJECT
28 default: 'TF-A/tf-a-tests'
29 - string:
30 name: TFTF_GERRIT_BRANCH
31 default: 'refs/heads/lts-v2.8'
32 - string:
33 name: TFTF_GERRIT_REFSPEC
34 default: '+refs/heads/lts-v2.8:refs/remotes/origin/lts-v2.8'
35 - string:
36 name: SPM_REFSPEC
37 default: 'v2.8'
38 description: |
39 SPM(Hafnium) refspec to use. The master branch is used by default.
40 - string:
41 name: CI_REFSPEC
42 default: '+refs/heads/lts-v2.8:refs/remotes/origin/lts-v2.8'
43 - string:
44 name: MBEDTLS_URL
45 default: 'https://github.com/Mbed-TLS/mbedtls/archive/mbedtls-3.6.1.tar.gz'
46 - string:
47 name: LAVA_RETRIES
48 default: 2
49 description: |
50 Number of tries submitting job to LAVA in case it fails (stopgap measure against nondeterministic failures)
51 - string:
52 name: USE_TUXSUITE_FVP
53 default: 1
54 description: |
55 Whether to submit FVP tests via TuxSuite (instead of LAVA)
56 - bool:
57 name: FORCE_TO_BUILD
58 default: false
59 description: |
60 If there are no new commits in trusted-firmware-a tf-a-tests, or tf-a-ci-scripts the build will be sikpped.
61 However, you can always force to run the build
62 - string:
63 name: SHARE_FOLDER
64 default: '/srv/shared/${JOB_NAME}/${BUILD_NUMBER}'
65 description: 'Folder containing shared repositories for downstream pipeline jobs'
Paul Sokolovsky04b2e1f2023-05-18 00:45:31 +030066 triggers:
Arthur She0cfe3642025-01-10 21:49:38 -080067 - timed: 'H H(0-7) * * 3,6'
Paul Sokolovsky04b2e1f2023-05-18 00:45:31 +030068 wrappers:
69 - credentials-binding:
70 - ssh-user-private-key:
71 credential-id: TFA_CI_BOT_USER_SSH_KEY
72 key-file-variable: CI_BOT_KEY
73 username-variable: CI_BOT_USERNAME
74 passphrase-variable: ''
75 - workspace-cleanup
76 - timestamps
77 builders:
Arthur She0cfe3642025-01-10 21:49:38 -080078 - shell:
79 !include-raw: scripts/clone.sh
80 - shell: |
81 #!/bin/bash
82 set -e
83 cat << EOF > tf-a-env.param
84 GERRIT_PROJECT=${TF_GERRIT_PROJECT}
85 GERRIT_BRANCH=${TF_GERRIT_BRANCH}
86 GERRIT_REFSPEC=${TF_GERRIT_REFSPEC}
87 QA_SERVER_PROJECT=${JOB_NAME}
88 QA_SERVER_VERSION=${BUILD_NUMBER}
89 SHARE_FOLDER=${SHARE_FOLDER}
90 EOF
91 cat << EOF > tf-a-tests-env.param
92 GERRIT_PROJECT=${TFTF_GERRIT_PROJECT}
93 GERRIT_BRANCH=${TFTF_GERRIT_BRANCH}
94 GERRIT_REFSPEC=${TFTF_GERRIT_REFSPEC}
95 QA_SERVER_PROJECT=${JOB_NAME}
96 QA_SERVER_VERSION=${BUILD_NUMBER}
97 SHARE_FOLDER=${SHARE_FOLDER}
98 EOF
99 - shell:
100 !include-raw: scripts/lts-check-last-commit.sh
101 - conditional-step:
102 condition-kind: file-exists
103 condition-filename: TO_BUILD
104 condition-basedir: workspace
105 steps:
106 - multijob:
107 name: Run static checks on the code
108 condition: COMPLETED
109 projects:
110 - name: tf-a-static-checks
111 current-parameters: true
112 kill-phase-on: NEVER
113 property-file: tf-a-env.param
114 - multijob:
115 name: Build Trusted Firmware
116 condition: COMPLETED
117 projects:
118 - name: tf-a-lts2.8-ci-gateway
119 alias: tf-l1-build-fvp tf-l2-build-fvp
120 current-parameters: true
121 kill-phase-on: NEVER
122 predefined-parameters: |
123 TEST_GROUPS=tf-l1-build-fvp tf-l2-build-fvp
124 property-file: tf-a-env.param
125 - name: tf-a-lts2.8-ci-gateway
126 alias: tf-l1-build-juno tf-l2-build-juno
127 current-parameters: true
128 kill-phase-on: NEVER
129 predefined-parameters: TEST_GROUPS=tf-l1-build-juno tf-l2-build-juno
130 property-file: tf-a-env.param
131 - name: tf-a-lts2.8-ci-gateway
132 alias: tf-l1-build-plat
133 current-parameters: true
134 kill-phase-on: NEVER
135 predefined-parameters: TEST_GROUPS=tf-l1-build-plat
136 property-file: tf-a-env.param
137 - name: tf-a-lts2.8-ci-gateway
138 alias: tf-l1-build-clang
139 current-parameters: true
140 kill-phase-on: NEVER
141 predefined-parameters: TEST_GROUPS=tf-l1-build-clang
142 property-file: tf-a-env.param
143 - multijob:
144 name: TFTF Tests for FVP
145 condition: COMPLETED
146 projects:
147 - name: tf-a-lts2.8-ci-gateway
148 alias: tftf-l2-fwu
149 current-parameters: true
150 kill-phase-on: NEVER
151 predefined-parameters: TEST_GROUPS=tftf-l2-fwu
152 property-file: tf-a-tests-env.param
153 - name: tf-a-lts2.8-ci-gateway
154 alias: tftf-l1-fvp tftf-l2-fvp-auxiliary
155 current-parameters: true
156 kill-phase-on: NEVER
157 predefined-parameters: TEST_GROUPS=tftf-l1-fvp tftf-l2-fvp-auxiliary
158 property-file: tf-a-tests-env.param
159 - name: tf-a-lts2.8-ci-gateway
160 alias: tftf-l2-fvp tftf-l2-fvp-dynamiq
161 current-parameters: true
162 kill-phase-on: NEVER
163 predefined-parameters: TEST_GROUPS=tftf-l2-fvp tftf-l2-fvp-dynamiq
164 property-file: tf-a-tests-env.param
165 - name: tf-a-lts2.8-ci-gateway
166 alias: tftf-l2-extensive-tests-fvp
167 current-parameters: true
168 kill-phase-on: NEVER
169 predefined-parameters: TEST_GROUPS=tftf-l2-extensive-tests-fvp
170 property-file: tf-a-tests-env.param
171 - multijob:
172 name: Boot up to the Linux shell prompt
173 condition: COMPLETED
174 projects:
175 - name: tf-a-lts2.8-ci-gateway
176 alias: tf-l2-boot-tests-aarch32
177 current-parameters: true
178 kill-phase-on: NEVER
179 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-aarch32
180 property-file: tf-a-env.param
181 - name: tf-a-lts2.8-ci-gateway
182 alias: tf-l2-boot-tests-rootfs
183 current-parameters: true
184 kill-phase-on: NEVER
185 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-rootfs
186 property-file: tf-a-env.param
187 - name: tf-a-lts2.8-ci-gateway
188 alias: tf-l2-boot-tests-spm-mm
189 current-parameters: true
190 kill-phase-on: NEVER
191 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-spm-mm
192 property-file: tf-a-env.param
193 - name: tf-a-lts2.8-ci-gateway
194 alias: spm-l2-boot-tests
195 current-parameters: true
196 kill-phase-on: NEVER
197 predefined-parameters: TEST_GROUPS=spm-l2-boot-tests
198 property-file: tf-a-env.param
199 - multijob:
200 name: Boot up to the Linux shell prompt - Part 2
201 condition: COMPLETED
202 projects:
203 - name: tf-a-lts2.8-ci-gateway
204 alias: tf-l2-boot-tests-misc
205 current-parameters: true
206 kill-phase-on: NEVER
207 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-misc
208 property-file: tf-a-env.param
209 - name: tf-a-lts2.8-ci-gateway
210 alias: tf-l2-boot-tests-latest
211 current-parameters: true
212 kill-phase-on: NEVER
213 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-latest
214 property-file: tf-a-env.param
215 - name: tf-a-lts2.8-ci-gateway
216 alias: tf-l2-boot-tests-cortex
217 current-parameters: true
218 kill-phase-on: NEVER
219 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-cortex
220 property-file: tf-a-env.param
221 - name: tf-a-lts2.8-ci-gateway
222 alias: tf-l2-boot-tests-gicv2
223 current-parameters: true
224 kill-phase-on: NEVER
225 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-gicv2
226 property-file: tf-a-env.param
227 - name: tf-a-lts2.8-ci-gateway
228 alias: tf-l2-boot-tests-bl2_el3
229 current-parameters: true
230 kill-phase-on: NEVER
231 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-bl2_el3
232 property-file: tf-a-env.param
233 - name: tf-a-lts2.8-ci-gateway
234 alias: qemu-boot-tests
235 current-parameters: true
236 kill-phase-on: NEVER
237 predefined-parameters: TEST_GROUPS=qemu-boot-tests
238 property-file: tf-a-env.param
239 - multijob:
240 name: Juno Boot Tests
241 condition: COMPLETED
242 projects:
243 - name: tf-a-lts2.8-ci-gateway
244 alias: tf-l2-boot-tests-juno
245 current-parameters: true
246 kill-phase-on: NEVER
247 predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-juno
248 property-file: tf-a-env.param
249 - name: tf-a-lts2.8-ci-gateway
250 alias: tftf-l1-juno
251 current-parameters: true
252 kill-phase-on: NEVER
253 predefined-parameters: TEST_GROUPS=tftf-l1-juno
254 property-file: tf-a-env.param
255 - multijob:
256 name: Miscellaneous tests
257 condition: COMPLETED
258 projects:
259 - name: tf-a-lts2.8-ci-gateway
260 alias: tf-l3-boot-tests-css
261 current-parameters: true
262 kill-phase-on: NEVER
263 predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-css
264 property-file: tf-a-env.param
265 - name: tf-a-lts2.8-ci-gateway
266 alias: tf-l3-boot-tests-spm-mm
267 current-parameters: true
268 kill-phase-on: NEVER
269 predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-spm-mm
270 property-file: tf-a-env.param
271 - name: tf-a-lts2.8-ci-gateway
272 alias: tf-l3-boot-tests-ras
273 current-parameters: true
274 kill-phase-on: NEVER
275 predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-ras
276 property-file: tf-a-env.param
277 - name: tf-a-lts2.8-ci-gateway
278 alias: tf-l3-boot-tests-misc
279 current-parameters: true
280 kill-phase-on: NEVER
281 predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-misc
282 property-file: tf-a-env.param
283 - name: tf-a-lts2.8-ci-gateway
284 alias: spm-l3-boot-tests
285 current-parameters: true
286 kill-phase-on: NEVER
287 predefined-parameters: TEST_GROUPS=spm-l3-boot-tests
288 property-file: tf-a-env.param
289 - name: tf-a-lts2.8-ci-gateway
290 alias: tf-l1-boot-tests-plat
291 current-parameters: true
292 kill-phase-on: NEVER
293 predefined-parameters: TEST_GROUPS=tf-l1-boot-tests-plat
294 property-file: tf-a-env.param
295 - multijob:
296 name: Run doc build check
297 condition: COMPLETED
298 projects:
299 - name: tf-a-lts2.8-ci-gateway
300 current-parameters: true
301 kill-phase-on: NEVER
302 predefined-parameters: TEST_GROUPS=tf-l1-check-docs
303 property-file: tf-a-env.param
304 - multijob:
305 name: Generate visualizations
306 condition: COMPLETED
307 projects:
308# - name: tf-a-sloc-visualization
309# current-parameters: true
310# kill-phase-on: NEVER
311# property-file: tf-a-env.param
312# - name: tf-a-test-category-visualization
313# current-parameters: true
314# kill-phase-on: NEVER
315# property-file: tf-a-env.param
316 - name: tf-a-test-result-visualization
317 current-parameters: true
318 kill-phase-on: NEVER
319 predefined-parameters: TARGET_BUILD=${JOB_NAME}/${BUILD_NUMBER}
320 property-file: tf-a-env.param
321 # Run the unstable TF-A Tests at the end but do not let their results
322 # participate in the job's success/failure.
323 - trigger-builds:
324 - project: tf-a-lts2.8-ci-gateway
325 current-parameters: True
326 property-file: tf-a-tests-env.param
327 property-file-fail-on-missing: True
328 predefined-parameters: TEST_GROUPS=tftf-unstable
329 block: True
330 block-thresholds:
331 build-step-failure-threshold: never
332 unstable-threshold: never
333 failure-threshold: never
Paul Sokolovsky04b2e1f2023-05-18 00:45:31 +0300334 publishers:
Arthur She0cfe3642025-01-10 21:49:38 -0800335 - groovy-postbuild:
336 script: |
337 def currentBuild = Thread.currentThread().executable
338 def workspace = System.getenv('WORKSPACE') ?: '.'
339 def toBuildFile = new File("${workspace}/TO_BUILD")
340
341 if (!toBuildFile.exists()) {
342 currentBuild.setDescription("There are no new commits in the repositories, skip the build!")
343 }
344 on-failure: "nothing"
345 - email:
346 recipients: bipin.ravi@arm.com, vwadekar@nvidia.com, yann.gautier@st.com, palmer@google.com, govindraj.raja@arm.com