tf-a-lts2.10-main: LTS 2.10 daily job

Based on the corresponding mainline and lts2.8 jobs (all build steps are
taken from mainline).

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
Change-Id: Icb6622030e3251e1803138af57a14be843a8e6e4
diff --git a/tf-a-lts2.10-main.yaml b/tf-a-lts2.10-main.yaml
new file mode 100644
index 0000000..42f76fb
--- /dev/null
+++ b/tf-a-lts2.10-main.yaml
@@ -0,0 +1,382 @@
+- job:
+    name: tf-a-lts2.10-main
+    node: docker-amd64-tf-a-jammy
+    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: 60
+        num-to-keep: 30
+    - 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/lts-v2.10'
+        - string:
+            name: TF_GERRIT_REFSPEC
+            default: '+refs/heads/lts-v2.10:refs/remotes/origin/lts-v2.10'
+        - string:
+            name: TFTF_GERRIT_PROJECT
+            default: 'TF-A/tf-a-tests'
+        - string:
+            name: TFTF_GERRIT_BRANCH
+            default: 'refs/heads/lts-v2.10'
+        - string:
+            name: TFTF_GERRIT_REFSPEC
+            default: '+refs/heads/lts-v2.10:refs/remotes/origin/lts-v2.10'
+        - string:
+           name: SPM_REFSPEC
+           default: 'v2.10'
+           description: |
+             SPM(Hafnium) refspec to use. The master branch is used by default.
+        - string:
+            name: CI_REFSPEC
+            default: '+refs/heads/lts-v2.10:refs/remotes/origin/lts-v2.10'
+        - string:
+            name: MBEDTLS_URL
+            default: 'https://github.com/Mbed-TLS/mbedtls/archive/mbedtls-3.4.1.tar.gz'
+        - string:
+            name: LAVA_RETRIES
+            default: 2
+            description: |
+              Number of tries submitting job to LAVA in case it fails (stopgap measure against nondeterministic failures)
+        - string:
+            name: USE_TUXSUITE_FVP
+            default: 1
+            description: |
+              Whether to submit FVP tests via TuxSuite (instead of LAVA)
+        - string:
+            name: SHARE_FOLDER
+            default: '/srv/shared/${JOB_NAME}/${BUILD_NUMBER}'
+            description: 'Folder containing shared repositories for downstream pipeline jobs'
+    triggers:
+        - timed: 'H H(0-7) * * 4,7'
+    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:
+        !include-raw: scripts/clone.sh
+    - 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}
+        SHARE_FOLDER=${SHARE_FOLDER}
+        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}
+        SHARE_FOLDER=${SHARE_FOLDER}
+        EOF
+    - multijob:
+        name: Run static checks on the code
+        condition: COMPLETED
+        projects:
+        - name: tf-a-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-a-lts2.10-ci-gateway
+          alias: tf-l1-build-fvp tf-l2-build-fvp
+          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-a-lts2.10-ci-gateway
+          alias: tf-l1-build-juno tf-l2-build-juno
+          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-a-lts2.10-ci-gateway
+          alias: tf-l1-build-plat
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l1-build-plat
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l1-build-clang
+          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 for FVP
+        condition: COMPLETED
+        projects:
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tftf-l2-fwu
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tftf-l2-fwu
+          property-file: tf-a-tests-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tftf-l1-fvp tftf-l2-fvp-auxiliary
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tftf-l1-fvp tftf-l2-fvp-auxiliary
+          property-file: tf-a-tests-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tftf-l2-fvp tftf-l2-fvp-dynamiq
+          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-a-lts2.10-ci-gateway
+          alias: tftf-l2-extensive-tests-fvp
+          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-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-foundation
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-foundation
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-aarch32
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-aarch32
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-rootfs
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-rootfs
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-spm-mm
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-spm-mm
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: spm-l2-boot-tests
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=spm-l2-boot-tests
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l1-boot-tests-misc
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l1-boot-tests-misc
+          property-file: tf-a-env.param
+    - multijob:
+        name: Boot up to the Linux shell prompt - Part 2
+        condition: COMPLETED
+        projects:
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-misc
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-misc
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-latest
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-latest
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-cortex
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-cortex
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-gicv2
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-gicv2
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-bl2_el3
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-bl2_el3
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: qemu-boot-tests
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=qemu-boot-tests
+          property-file: tf-a-env.param
+    - multijob:
+        name: Juno Boot Tests
+        condition: COMPLETED
+        projects:
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l1-boot-tests-juno
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l1-boot-tests-juno
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l2-boot-tests-juno
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-juno
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tftf-l1-juno
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tftf-l1-juno
+          property-file: tf-a-env.param
+    - multijob:
+        name: Miscellaneous tests
+        condition: COMPLETED
+        projects:
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l3-boot-tests-css
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-css
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l3-boot-tests-spm-mm
+          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-a-lts2.10-ci-gateway
+          alias: tf-l3-boot-tests-ras
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-ras
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l3-boot-tests-misc
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-misc
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l3-boot-tests-n1sdp
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-n1sdp
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: spm-l3-boot-tests
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=spm-l3-boot-tests
+          property-file: tf-a-env.param
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l1-boot-tests-plat
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l1-boot-tests-plat
+          property-file: tf-a-env.param
+        # Platform-specific self-tests.
+        # These tests run from the BL31 image then halt the target.
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-plat-tests
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-plat-tests
+          property-file: tf-a-env.param
+    - multijob:
+        name: Code coverage
+        condition: COMPLETED
+        projects:
+        - name: tf-a-lts2.10-ci-gateway
+          alias: tf-l3-code-coverage
+          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-a-lts2.10-ci-gateway
+          alias: tf-l1-check-docs
+          current-parameters: true
+          kill-phase-on: NEVER
+          predefined-parameters: TEST_GROUPS=tf-l1-check-docs
+          property-file: tf-a-env.param
+    - multijob:
+        name: Generate visualizations
+        condition: COMPLETED
+        projects:
+          - name: tf-a-sloc-visualization
+            current-parameters: true
+            kill-phase-on: NEVER
+            property-file: tf-a-env.param
+          - name: tf-a-test-category-visualization
+            current-parameters: true
+            kill-phase-on: NEVER
+            property-file: tf-a-env.param
+          - name: tf-a-test-result-visualization
+            current-parameters: true
+            kill-phase-on: NEVER
+            predefined-parameters: TARGET_BUILD=${JOB_NAME}/${BUILD_NUMBER}
+            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-a-lts2.10-ci-gateway
+          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: |-
+#            #!/bin/bash
+#            if [ $MULTIJOB_FAILED -eq 0 ]; then
+#                echo "Proceed with integration->master fast-forward merge"
+#                bash "${WORKSPACE}/tf-a-ci-scripts/script/scratch_scripts/fast-forward-master.sh"
+#            else
+#                echo "Do not proceed with integration->master merge as sub-jobs failed"
+#            fi
+    publishers:
+        - email:
+            recipients: okash@google.com, paul.sokolovsky@linaro.org, bipin.ravi@arm.com, vwadekar@nvidia.com, joanna.farley@arm.com