Add TF-A LTS 2.12 jobs

Change-Id: Ida9a5b3b3cfc2e28244be41b03d78ae59cabeb44
Signed-off-by: Arthur She <arthur.she@linaro.org>
diff --git a/tf-a-lts2.12-ci-gateway.yaml b/tf-a-lts2.12-ci-gateway.yaml
new file mode 100644
index 0000000..9cf322c
--- /dev/null
+++ b/tf-a-lts2.12-ci-gateway.yaml
@@ -0,0 +1,135 @@
+- job:
+    name: tf-a-lts2.12-ci-gateway
+    node: docker-amd64-tf-a-lts2.12-jammy
+    project-type: freestyle
+    concurrent: true
+    disabled: false
+    defaults: global
+    description: |
+      Main job entry point for a Trusted Firmware A (TF-A) LTS v2.12 CI.
+    properties:
+    - build-discarder:
+        days-to-keep: 15
+    - throttle:
+        option: project
+        enabled: true
+        max-per-node: 3
+        max-total: 10
+    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
+    - timeout:
+        timeout: 240
+        fail: true
+    - timestamps
+    parameters:
+    - string:
+        name: TEST_GROUPS
+        default: tf-l2-boot-tests-cortex/fvp-default:fvp-linux-dtb-fip.uboot-cortexa35x4-debug
+        description: |
+          White space separated list of test configs: can be mix of specific
+          test configs (e.g., <code>l1/fvp-default:fvp-linux-default</code>) and
+          group names (e.g., <code>l1 l2</code>).
+    - string:
+        name: TF_GERRIT_REFSPEC
+        default: '+refs/heads/lts-v2.12:refs/remotes/origin/lts-v2.12'
+        description: |
+          trusted-firmware-a refspec to use. The lts-v2.12 branch is used by default.
+    - string:
+        name: TFTF_GERRIT_REFSPEC
+        default: '+refs/heads/lts-v2.12:refs/remotes/origin/lts-v2.12'
+        description: |
+          tf-a-tests refspec to use. The lts-v2.12 branch is used by default.
+    - string:
+        name: TF_M_TESTS_GERRIT_REFSPEC
+        default: '53ddc58dcd57e1f5cf658b316d7d735335d58570'
+        description: |
+          tf-m-tests refspec to use. The tfa_ci_dep_revision branch is used by default.
+    - string:
+        name: TF_M_EXTRAS_GERRIT_REFSPEC
+        default: '3ff04e40ff7f66c8cee087b6e5cbd8fb8c1bec01'
+        description: |
+          tf-m-extras refspec to use. The tfa_ci_dep_revision branch is used by default.
+    - string:
+       name: SPM_REFSPEC
+       default: '+refs/heads/lts-v2.12:refs/remotes/origin/lts-v2.12'
+       description: |
+         SPM(Hafnium) refspec to use. The lts-v2.12 branch is used by default.
+    - string:
+        name: CI_REFSPEC
+        default: '+refs/heads/lts-v2.12:refs/remotes/origin/lts-v2.12'
+        description: |
+          tf-a-ci-scripts refspec to use. The lts-v2.12 branch is used by default.
+    - string:
+        name: JOBS_REFSPEC
+        default: 'refs/heads/master'
+        description: |
+          tf-a-job-configs refspec to use. The master branch is used by default.
+    - bool:
+        name: ENABLE_STATIC_CHECK
+        default: false
+    - string:
+        name: QA_TOOLS_REPO
+        default: 'https://git.gitlab.arm.com/tooling/qa-tools.git'
+    - string:
+        name: QA_TOOLS_BRANCH
+        default: 'master'
+    - 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'
+    builders:
+    - shell:
+        !include-raw: scripts/clone.sh
+    - shell: |
+        #!/bin/bash
+        set -e
+        CI_ROOT=${PWD}/tf-a-ci-scripts
+        export workspace=$PWD
+        export test_groups=$TEST_GROUPS
+        $CI_ROOT/script/gen_test_desc.py
+        cat << EOF > share.param
+        SHARE_FOLDER=${SHARE_FOLDER}
+        EOF
+    - trigger-builds:
+      - project:
+        - tf-a-lts2.12-builder
+        block: true
+        property-file: share.param
+        current-parameters: true
+        property-file-fail-on-missing: false
+        parameter-factories:
+        - factory: filebuild
+          file-pattern: '*.testprop'
+          no-files-found-action: FAIL
+    publishers:
+        - postbuildscript:
+            builders:
+                - role: SLAVE
+                  build-on:
+                      - SUCCESS
+                      - FAILURE
+                      - UNSTABLE
+                      - ABORTED
+                      - NOT_BUILT
+                  build-steps:
+                      - shell: |-
+                          #!/bin/bash -e
+                          export CI_ROOT=${PWD}/tf-a-ci-scripts
+                          bash "$CI_ROOT/job/tf-ci-gateway/generate_report.sh"
+        - archive:
+            artifacts: report.json, report.html, merge/outdir/**
+        - groovy-postbuild:
+            script:
+                !include-raw:
+                  - tf-a-ci-gateway/postbuild.groovy