blob: 5a3bbd5c46b690e246b2317e9f90b2f4194aa12d [file] [log] [blame]
Zachary Leaf5a9a2772024-10-15 15:07:23 +01001- job:
2 name: tf-a-main-tfa-next
3 node: docker-amd64-tf-a-jammy
4 project-type: multijob
5 concurrent: true
6 disabled: false
7 description: Main CI job for Trusted Firmware Next
8 properties:
Chris Kay675db4f2025-06-24 14:14:34 +01009 - throttle:
10 option: project
11 enabled: true
12 max-total: 5
13 - build-discarder:
14 days-to-keep: 14
15 num-to-keep: 60
Zachary Leaf5a9a2772024-10-15 15:07:23 +010016 triggers:
Chris Kay675db4f2025-06-24 14:14:34 +010017 - gerrit:
18 server-name: review.trustedfirmware.org
19 projects:
20 - branches:
21 - branch-compare-type: PLAIN
22 branch-pattern: tfa-next
23 project-compare-type: PLAIN
24 project-pattern: TF-A/trusted-firmware-a
25 trigger-on:
Zachary Leaf5a9a2772024-10-15 15:07:23 +010026 - patchset-created-event:
27 exclude-drafts: true
Tomás González43ff3962024-11-12 12:24:33 +000028 exclude-trivial-rebase: false
Zachary Leaf5a9a2772024-10-15 15:07:23 +010029 exclude-no-code-change: true
30 exclude-private: true
31 exclude-wip: true
Zachary Leaf5b81ea02024-10-30 16:36:38 +000032 - comment-added-contains-event:
Chris Kay675db4f2025-06-24 14:14:34 +010033 comment-contains-value: ^RUN_CI$
34 override-votes: true
35 gerrit-build-started-verified-value: 0
36 gerrit-build-successful-verified-value: 1
37 gerrit-build-failed-verified-value: -1
38 gerrit-build-unstable-verified-value: -1
39 gerrit-build-notbuilt-verified-value: 0
40 # without explicitly setting these values to 0, the plugin will by
41 # default leave Code Review votes
42 gerrit-build-started-codereview-value: 0
43 gerrit-build-successful-codereview-value: 0
44 gerrit-build-failed-codereview-value: 0
45 gerrit-build-unstable-codereview-value: 0
46 gerrit-build-notbuilt-codereview-value: 0
47 silent: false
48 silent-start: false
Zachary Leaf5a9a2772024-10-15 15:07:23 +010049 parameters:
Chris Kay675db4f2025-06-24 14:14:34 +010050 # GERRIT_{PROJECT,BRANCH,REFSPEC} are set when triggered by a Gerrit
51 # patchset - defaults below are for manual triggers
52 - string:
53 name: GERRIT_PROJECT
54 default: TF-A/trusted-firmware-a
55 - string:
56 name: GERRIT_BRANCH
57 default: refs/heads/tfa-next
58 - string:
59 name: GERRIT_REFSPEC
60 default: +refs/heads/tfa-next:refs/remotes/origin/tfa-next
61 description: |
62 'e.g. refs/changes/13/31138/1'
63 - string:
64 name: TF_GERRIT_REFSPEC
65 default: ${GERRIT_REFSPEC}
66 description: |
67 'do-not-amend: used by scripts/clone.sh to fetch the correct Gerrit patchset - use GERRIT_REFSPEC instead'
68 - string:
69 name: TFTF_GERRIT_PROJECT
70 default: TF-A/tf-a-tests
71 - string:
72 name: TFTF_GERRIT_BRANCH
73 default: refs/heads/master
74 - string:
75 name: TFTF_GERRIT_REFSPEC
76 default: +refs/heads/master:refs/remotes/origin/master
77 - string:
78 name: CI_REFSPEC
79 default: +refs/heads/tfa-next:refs/remotes/origin/tfa-next
80 description: |
81 'Refs to fetch for the tf-a-ci-scripts repo e.g. refs/changes/13/31138/1'
82 - string:
83 name: JOBS_REFSPEC
84 default: refs/heads/master
85 description: |
86 tf-a-job-configs refspec to use. The master branch is used by default.
87 - string:
88 name: SHARE_FOLDER
89 default: /srv/shared/${JOB_NAME}/${BUILD_NUMBER}
90 description: Folder containing shared repositories for downstream pipeline jobs
91 - string:
92 name: CLONE_REPOS
93 default: tf-a-ci-scripts,trusted-firmware-a
94 description: |
95 Optional arg to clone only specific projects from default list (tf-a-ci-scripts,trusted-firmware-a,tf-a-tests,spm,tf-m-tests,tf-m-extras)
96 - string:
97 name: FETCH_SSH
98 default: 1
99 description: |
100 Fetch branches with authenticated SSH instead of anonymous HTTPS
Zachary Leaf5a9a2772024-10-15 15:07:23 +0100101 wrappers:
102 - credentials-binding:
103 - ssh-user-private-key:
104 credential-id: TFA_CI_BOT_USER_SSH_KEY
105 key-file-variable: CI_BOT_KEY
106 username-variable: CI_BOT_USERNAME
Chris Kay675db4f2025-06-24 14:14:34 +0100107 passphrase-variable: ""
Zachary Leaf5a9a2772024-10-15 15:07:23 +0100108 - workspace-cleanup
109 - timestamps
110 builders:
Chris Kay675db4f2025-06-24 14:14:34 +0100111 - shell: !include-raw: scripts/clone.sh
112 - shell: |
113 #!/bin/bash
114 set -e
115 cat << EOF > tf-a-env.param
116 TF_GERRIT_PROJECT=${GERRIT_PROJECT}
117 TF_GERRIT_BRANCH=${GERRIT_BRANCH}
118 TF_GERRIT_REFSPEC=${GERRIT_REFSPEC}
119 SHARE_FOLDER=${SHARE_FOLDER}
120 EOF
121 - multijob:
122 name: Lint commit messages
123 condition: COMPLETED
124 projects:
125 - name: tf-a-commitlint-tfa-next
126 kill-phase-on: NEVER
127 predefined-parameters: |
128 REFSPEC=${GERRIT_REFSPEC}
129 REFNAME=${GERRIT_PATCHSET_REVISION}
130 REFNAME_BASE=origin/${GERRIT_BRANCH}
131 - multijob:
132 name: Code formatting, static checks and lints
133 condition: COMPLETED
134 projects:
135 - name: tf-a-static-tfa-next
136 current-parameters: true
137 kill-phase-on: NEVER
138 property-file: tf-a-env.param
139 - multijob:
140 name: Platform independent tests
141 condition: COMPLETED
142 projects:
143 - name: generic-lib-testing
144 current-parameters: true
145 kill-phase-on: NEVER
146 predefined-parameters: |
147 TEST_REPO_NAME=trusted-firmware-a
148 TEST_REPO_PROJECT=TF-A
149 property-file: tf-a-env.param
150 - multijob:
151 name: Build Trusted Firmware
152 condition: COMPLETED
153 projects:
154 - name: tf-a-ci-gateway-tfa-next
155 alias: tf-next-build
156 current-parameters: true
157 kill-phase-on: NEVER
158 predefined-parameters: |
159 TEST_GROUPS=tf-next-build
160 property-file: tf-a-env.param
161 - multijob:
162 name: FVP Tests
163 condition: COMPLETED
164 projects:
165 - name: tf-a-ci-gateway-tfa-next
166 alias: rfa-fvp
167 current-parameters: true
168 kill-phase-on: NEVER
169 predefined-parameters: |
170 TEST_GROUPS=rfa-fvp
171 property-file: tf-a-env.param