summaryrefslogtreecommitdiff
path: root/tf-main.yaml
blob: 807ac61fb038d237dda086bceccb5350e14e6fc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
- scm:
    name: tf-a-ci-scripts
    scm:
        - git:
            url: https://git.trustedfirmware.org/ci/tf-a-ci-scripts.git
            refspec: +refs/heads/master:refs/remotes/origin/master
            name: origin
            branches:
                - refs/heads/master
            basedir: tf-a-ci-scripts
            skip-tag: true
            shallow-clone: true
            wipe-workspace: false
- scm:
    name: trusted-firmware-a
    scm:
        - git:
            url: https://review.trustedfirmware.org/${TF_GERRIT_PROJECT}
            refspec: ${TF_GERRIT_REFSPEC}
            name: origin
            branches:
                - ${TF_GERRIT_BRANCH}
            basedir: trusted-firmware-a
            skip-tag: true
            shallow-clone: false
            wipe-workspace: false
- job:
    name: tf-main
    node: master
    project-type: multijob
    concurrent: true
    disabled: false
    description: Main CI job for Trusted Firmware.
    properties:
    - throttle:
        option: project
        enabled: true
        max-total: 5
    - build-discarder:
        days-to-keep: 14
        num-to-keep: 60
    - authorization:
        !include: authorization.yaml.inc
    parameters:
        - string:
            name: TF_GERRIT_PROJECT
            default: 'TF-A/trusted-firmware-a'
        - string:
            name: TF_GERRIT_BRANCH
            default: 'refs/heads/integration'
        - string:
            name: TF_GERRIT_REFSPEC
            default: '+refs/heads/integration:refs/remotes/origin/integration'
        - string:
            name: TFTF_GERRIT_PROJECT
            default: 'TF-A/tf-a-tests'
        - string:
            name: TFTF_GERRIT_BRANCH
            default: 'refs/heads/master'
        - string:
            name: TFTF_GERRIT_REFSPEC
            default: '+refs/heads/master:refs/remotes/origin/master'
    scm:
        - tf-a-ci-scripts
        - trusted-firmware-a
    wrappers:
      - credentials-binding:
          - ssh-user-private-key:
              credential-id: TFA_CI_BOT_USER_SSH_KEY
              key-file-variable: CI_BOT_KEY
              username-variable: CI_BOT_USERNAME
              passphrase-variable: ''
      - workspace-cleanup
      - timestamps
    builders:
    - shell: |
        #!/bin/bash
        set -e
        cat << EOF > tf-a-env.param
        GERRIT_PROJECT=${TF_GERRIT_PROJECT}
        GERRIT_BRANCH=${TF_GERRIT_BRANCH}
        GERRIT_REFSPEC=${TF_GERRIT_REFSPEC}
        QA_SERVER_PROJECT=${JOB_NAME}
        QA_SERVER_VERSION=${BUILD_NUMBER}
        EOF
        cat << EOF > tf-a-tests-env.param
        GERRIT_PROJECT=${TFTF_GERRIT_PROJECT}
        GERRIT_BRANCH=${TFTF_GERRIT_BRANCH}
        GERRIT_REFSPEC=${TFTF_GERRIT_REFSPEC}
        QA_SERVER_PROJECT=${JOB_NAME}
        QA_SERVER_VERSION=${BUILD_NUMBER}
        EOF
    - multijob:
        name: Run static checks on the code
        condition: COMPLETED
        projects:
        - name: tf-static-checks
          current-parameters: true
          kill-phase-on: NEVER
          property-file: tf-a-env.param
    - multijob:
        name: Build Trusted Firmware
        condition: COMPLETED
        projects:
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: |
            TEST_GROUPS=tf-l1-build-fvp tf-l2-build-fvp
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l1-build-juno tf-l2-build-juno
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l1-build-plat
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l1-build-clang
          property-file: tf-a-env.param
    - multijob:
        name: TFTF Tests
        condition: COMPLETED
        projects:
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tftf-l2-fwu
          property-file: tf-a-tests-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tftf-l1-fvp tftf-l1-juno tftf-l2-fvp-auxiliary
          property-file: tf-a-tests-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tftf-l2-fvp tftf-l2-fvp-dynamiq
          property-file: tf-a-tests-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tftf-l2-extensive-tests-fvp
          property-file: tf-a-tests-env.param
    - multijob:
        name: Boot up to the Linux shell prompt
        condition: COMPLETED
        projects:
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-foundation
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-aarch32
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-rootfs
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-juno
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-spm-mm
          property-file: tf-a-env.param
    - multijob:
        name: Boot up to the Linux shell prompt - Part 2
        condition: COMPLETED
        projects:
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-misc
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-latest
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-cortex
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-gicv2
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-bl2_el3
          property-file: tf-a-env.param
    - multijob:
        name: Miscellaneous tests
        condition: COMPLETED
        projects:
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-css
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-spm-mm
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-ras
          property-file: tf-a-env.param
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-misc
          property-file: tf-a-env.param
    - multijob:
        name: Code coverage
        condition: COMPLETED
        projects:
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l3-code-coverage
          property-file: tf-a-env.param
    - multijob:
        name: Run doc build check
        condition: COMPLETED
        projects:
        - name: tf-ci-gateway
          current-parameters: true
          kill-phase-on: NEVER
          predefined-parameters: TEST_GROUPS=tf-l1-check-docs
          property-file: tf-a-env.param
    # Run the unstable TF-A Tests at the end but do not let their results
    # participate in the job's success/failure.
    - trigger-builds:
        - project: tf-ci-gateway
          same-node: True
          current-parameters: True
          property-file: tf-a-tests-env.param
          property-file-fail-on-missing: True
          predefined-parameters: TEST_GROUPS=tftf-unstable
          block: True
          block-thresholds:
            build-step-failure-threshold: never
            unstable-threshold: never
            failure-threshold: never
    # If all tests passed, catch up the master branch with integration
    - conditional-step:
        condition-kind: current-status
        condition-best: SUCCESS
        condition-worst: SUCCESS
        steps:
        - shell: bash "${WORKSPACE}/tf-a-ci-scripts/script/scratch_scripts/fast-forward-master.sh