tfa-next: add initial ci

Initial job config to run the tfa-next tests. Triggered automatically on
new patchsets uploaded to Gerrit.

For now gateway and builder yamls are direct copies of the non-suffixed
`-tfa-next` versions, just renamed to retain the same Jenkins config
that's applied via the suffix. At some point in the future they can be
replaced with the normal non-suffixed versions.

Change-Id: I2d194aff6760760a72050da21c32b574157ca3c7
Signed-off-by: Zachary Leaf <zachary.leaf@arm.com>
diff --git a/tf-a-ci-gateway-tfa-next.yaml b/tf-a-ci-gateway-tfa-next.yaml
new file mode 100644
index 0000000..cd7c6db
--- /dev/null
+++ b/tf-a-ci-gateway-tfa-next.yaml
@@ -0,0 +1,132 @@
+- job:
+    name: tf-a-ci-gateway-tfa-next
+    node: docker-amd64-tf-a-jammy
+    project-type: freestyle
+    concurrent: true
+    disabled: false
+    defaults: global
+    description: |
+      Main job entry point for a Trusted Firmware A Next (TF-A) CI
+    properties:
+    - build-discarder:
+        days-to-keep: 15
+    - throttle:
+        option: project
+        enabled: true
+        max-per-node: 3
+        max-total: 10
+    - authorization:
+        !include: authorization.yaml.inc
+    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/master:refs/remotes/origin/master'
+        description: |
+          trusted-firmware-a refspec to use. The master branch is used by default.
+    - string:
+        name: TFTF_GERRIT_REFSPEC
+        default: '+refs/heads/master:refs/remotes/origin/master'
+        description: |
+          tf-a-tests refspec to use. The master branch is used by default.
+    - string:
+        name: TF_M_TESTS_GERRIT_REFSPEC
+        default: '+refs/heads/main:refs/remotes/origin/main'
+        description: |
+          tf-m-tests refspec to use. The main branch is used by default.
+    - string:
+        name: TF_M_EXTRAS_GERRIT_REFSPEC
+        default: '+refs/heads/main:refs/remotes/origin/main'
+        description: |
+          tf-m-extras refspec to use. The main branch is used by default.
+    - string:
+       name: SPM_REFSPEC
+       default: '+refs/heads/master:refs/remotes/origin/master'
+       description: |
+         SPM(Hafnium) refspec to use. The master branch is used by default.
+    - string:
+        name: CI_REFSPEC
+        default: '+refs/heads/master:refs/remotes/origin/master'
+        description: |
+          tf-a-ci-scripts 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-builder-tfa-next
+        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