tf-a-lts2.8-main: tf-a-main variant for the LTS 2.8 branch

Migrated from staging, where initial development happened. Runs daily
(there's no tf-a-daily "dispatcher" for LTS so far, so this job runs
directly as daily).

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
Change-Id: I2d5199a12876d25ef633b7f0ef6af2c0811ef7ef
diff --git a/tf-a-lts2.8-main.yaml b/tf-a-lts2.8-main.yaml
new file mode 100644
index 0000000..4d1cc95
--- /dev/null
+++ b/tf-a-lts2.8-main.yaml
@@ -0,0 +1,347 @@
+- job:
+    name: tf-a-lts2.8-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.8'
+        - string:
+            name: TF_GERRIT_REFSPEC
+            default: '+refs/heads/lts-v2.8:refs/remotes/origin/lts-v2.8'
+        - string:
+            name: TFTF_GERRIT_PROJECT
+            default: 'TF-A/tf-a-tests'
+        - string:
+            name: TFTF_GERRIT_BRANCH
+            default: 'refs/heads/lts-v2.8'
+        - string:
+            name: TFTF_GERRIT_REFSPEC
+            default: '+refs/heads/lts-v2.8:refs/remotes/origin/lts-v2.8'
+        - string:
+           name: SPM_REFSPEC
+           default: 'v2.8'
+           description: |
+             SPM(Hafnium) refspec to use. The master branch is used by default.
+        - string:
+            name: CI_REFSPEC
+            default: '+refs/heads/lts-v2.8:refs/remotes/origin/lts-v2.8'
+        - string:
+            name: SHARE_FOLDER
+            default: '/srv/shared/staging/${JOB_NAME}/${BUILD_NUMBER}'
+            description: 'Folder containing shared repositories for downstream pipeline jobs'
+    triggers:
+        - timed: 'H H(0-7) * * 3,6'
+    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-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-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-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-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-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-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-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-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-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-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-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-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-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
+    - multijob:
+        name: Boot up to the Linux shell prompt - Part 2
+        condition: COMPLETED
+        projects:
+        - name: tf-a-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-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-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-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-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-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-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-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-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-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-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-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-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-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-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
+    - multijob:
+        name: Code coverage
+        condition: COMPLETED
+        projects:
+        - name: tf-a-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-a-ci-gateway
+          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-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