Migrate Arm CI TF Main (tf-main) level job
Signed-off-by: Leonardo Sandoval <leonardo.sandoval@linaro.org>
Change-Id: Ic01baf00f900402e8936eb50c83f9f321c5298e2
diff --git a/tf-main.yaml b/tf-main.yaml
new file mode 100644
index 0000000..c73a6db
--- /dev/null
+++ b/tf-main.yaml
@@ -0,0 +1,289 @@
+- 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: 180
+ num-to-keep: 180
+ - authorization:
+ anonymous:
+ - job-read
+ - job-extended-read
+ lsandov1:
+ - job-read
+ - job-extended-read
+ - job-build
+ - job-cancel
+ - run-update
+ parameters:
+ - string:
+ name: TF_GERRIT_PROJECT
+ default: 'TF-A/trusted-firmware-a'
+ - string:
+ name: TF_GERRIT_BRANCH
+ default: 'master'
+ - string:
+ name: TF_GERRIT_REFSPEC
+ default: 'refs/heads/master'
+ - string:
+ name: TFTF_GERRIT_PROJECT
+ default: 'TF-A/tf-a-tests'
+ - string:
+ name: TFTF_GERRIT_BRANCH
+ default: 'master'
+ - string:
+ name: TFTF_GERRIT_REFSPEC
+ default: 'refs/heads/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}
+ EOF
+
+ cat << EOF > tf-a-tests-env.param
+ GERRIT_PROJECT=${TFTF_GERRIT_PROJECT}
+ GERRIT_BRANCH=${TFTF_GERRIT_BRANCH}
+ GERRIT_REFSPEC=${TFTF_GERRIT_REFSPEC}
+ EOF
+
+ - multijob:
+ name: Run static checks on the code
+ condition: COMPLETED
+ projects:
+ - name: tf-ci-gateway
+ current-parameters: true
+ kill-phase-on: NEVER
+ predefined-parameters: |-
+ REPO_UNDER_TEST=trusted-firmware
+ 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-spm 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
+ 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
+ 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