loosper-arm: sync jobs to upstream and add new ones
Change-Id: I1ee31c54bcb1838ec559903fe29e77aeacd8d935
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
diff --git a/loosper-arm-tf-a-builder.yaml b/loosper-arm-tf-a-builder.yaml
index 1c850c3..5ecb3bb 100644
--- a/loosper-arm-tf-a-builder.yaml
+++ b/loosper-arm-tf-a-builder.yaml
@@ -8,109 +8,139 @@
description: |
Trusted Firmware A (TF-A) builder
properties:
- - build-discarder:
- days-to-keep: 15
- - authorization:
- !include: loosper-arm-authorization.yaml.inc
+ - build-discarder:
+ days-to-keep: 15
+ artifact-num-to-keep: 40000
parameters:
- - string:
- name: import_cc
- - string:
- name: TEST_CONFIG
- description: |
- Original test configuration.
- - string:
- name: TEST_DESC
- description: |
- Expanded and normalized test configuration, aka "test description"
- - string:
- name: TF_GERRIT_PROJECT
- default: 'TF-A/trusted-firmware-a'
- - string:
- name: TF_GERRIT_BRANCH
- default: 'refs/heads/master'
- - string:
- name: TF_GERRIT_REFSPEC
- default: '+refs/heads/master:refs/remotes/origin/master'
- - string:
- name: TFTF_GERRIT_PROJECT
- default: 'TF-A/tf-a-tests'
- - string:
- name: TFTF_GERRIT_BRANCH
- default: 'refs/heads/master'
- - string:
- name: TFTF_GERRIT_REFSPEC
- default: '+refs/heads/master:refs/remotes/origin/master'
- - string:
- name: DOCKER_REGISTRY
- default: '987685672616.dkr.ecr.us-east-1.amazonaws.com'
- - string:
- name: JUNO_ROOTFS_URL
- default: 'http://releases.linaro.org/openembedded/aarch64/17.01/linaro-image-minimal-genericarmv8-20170127-888.rootfs.tar.gz'
- - string:
- name: MBEDTLS_URL
- default: 'https://github.com/Mbed-TLS/mbedtls/archive/mbedtls-2.28.1.tar.gz'
- - string:
- name: GERRIT_PATCHSET_NUMBER
- default: ''
- - string:
- name: GERRIT_CHANGE_NUMBER
- default: ''
- - string:
- name: GERRIT_HOST
- default: 'review.trustedfirmware.org'
- - string:
- name: QA_SERVER_TEAM
- default: 'tf'
- - string:
- name: QA_SERVER_PROJECT
- default: 'tf-a'
- - string:
- name: QA_SERVER_VERSION
- default: ${BUILD_NUMBER}
- - string:
- name: QA_SERVER
- default: 'https://qa-reports.linaro.org'
- - string:
- name: QA_TOOLS_REPO
- default: 'https://git.gitlab.arm.com/tooling/qa-tools.git'
- - string:
- name: SHARE_FOLDER
- default: '/srv/shared/staging/${JOB_NAME}/${BUILD_NUMBER}'
- description: 'Folder containing shared repositories for downstream pipeline jobs'
+ - string:
+ name: import_cc
+ - string:
+ name: TEST_CONFIG
+ description: |
+ Original test configuration.
+ - string:
+ name: TEST_DESC
+ description: |
+ Expanded and normalized test configuration, aka "test description"
+ - string:
+ name: TF_GERRIT_PROJECT
+ default: TF-A/trusted-firmware-a
+ - string:
+ name: TF_GERRIT_BRANCH
+ default: refs/heads/master
+ - string:
+ name: TF_GERRIT_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ - string:
+ name: TFTF_GERRIT_PROJECT
+ default: TF-A/tf-a-tests
+ - string:
+ name: TFTF_GERRIT_BRANCH
+ default: refs/heads/master
+ - string:
+ name: TFTF_GERRIT_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ - string:
+ name: CI_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ - string:
+ name: JOBS_REFSPEC
+ default: refs/heads/master
+ description: |
+ tf-a-job-configs refspec to use. The master branch is used by default.
+ - string:
+ name: DOCKER_REGISTRY
+ default: ${PRIVATE_CONTAINER_REGISTRY}
+ description: PRIVATE_CONTAINER_REGISTRY is a system-wide environment variable
+ - string:
+ name: JUNO_ROOTFS_URL
+ default: http://releases.linaro.org/openembedded/aarch64/17.01/linaro-image-minimal-genericarmv8-20170127-888.rootfs.tar.gz
+ - string:
+ name: MBEDTLS_URL
+ default: https://github.com/Mbed-TLS/mbedtls/archive/mbedtls-3.6.3.tar.gz
+ - string:
+ name: GERRIT_PATCHSET_NUMBER
+ default: ""
+ - string:
+ name: GERRIT_CHANGE_NUMBER
+ default: ""
+ - string:
+ name: GERRIT_HOST
+ default: review.trustedfirmware.org
+ - string:
+ name: QA_SERVER_TEAM
+ default: tf
+ - string:
+ name: QA_SERVER_PROJECT
+ default: tf-a
+ - string:
+ name: QA_SERVER_VERSION
+ default: ${BUILD_NUMBER}
+ - string:
+ name: QA_SERVER
+ default: https://qa-reports.linaro.org
+ - string:
+ name: QA_TOOLS_REPO
+ default: https://git.gitlab.arm.com/tooling/qa-tools.git
+ - string:
+ name: QA_TOOLS_BRANCH
+ default: master
+ - 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/staging/${JOB_NAME}/${BUILD_NUMBER}
+ description: Folder containing shared repositories for downstream pipeline jobs
wrappers:
- - timestamps
- - timeout:
- timeout: 120
- fail: true
- - credentials-binding:
- - text:
- credential-id: QA_REPORTS_TOKEN
- variable: QA_REPORTS_TOKEN
- - credentials-binding:
- - text:
- credential-id: LAVA_USER_TF
- variable: LAVA_USER
- - credentials-binding:
- - text:
- credential-id: LAVA_TOKEN_TF
- variable: LAVA_TOKEN
+ - timestamps
+ - timeout:
+ timeout: 120
+ fail: true
+ - credentials-binding:
+ - text:
+ credential-id: QA_REPORTS_TOKEN
+ variable: QA_REPORTS_TOKEN
+ - credentials-binding:
+ - text:
+ credential-id: LAVA_USER_TF
+ variable: LAVA_USER
+ - credentials-binding:
+ - text:
+ credential-id: LAVA_TOKEN_TF
+ variable: LAVA_TOKEN
+ - credentials-binding:
+ - text:
+ credential-id: TUXSUITE_TOKEN
+ variable: TUXSUITE_TOKEN
+ - credentials-binding:
+ - text:
+ credential-id: ARMCLANG_UBL_CODE
+ variable: ARMCLANG_UBL_CODE
builders:
- - shell:
- !include-raw: scripts/clone.sh
- - shell:
- !include-raw: tf-a-builder/builders.sh
- - inject:
- properties-file: artefacts/env
- - shell: |
- ln -s "artefacts/${BIN_MODE:-release}" "artefacts-lava"
- - conditional-step:
- condition-kind: file-exists
- on-evaluation-failure: dont-run
- condition-filename: artefacts-lava/job.yaml
- condition-basedir: workspace
- steps:
- - shell: |
+ - shell: |
+ aarch64-none-elf-gcc -v || true
+ - shell: !include-raw: scripts/clone.sh
+ - shell: !include-raw: tf-a-builder/builders.sh
+ - inject:
+ properties-file: artefacts/env
+ - shell: |
+ ln -s "artefacts/${BIN_MODE:-release}" "artefacts-lava"
+ echo ${BIN_MODE:-release} >lava-binmode.txt
+ - conditional-step:
+ condition-kind: file-exists
+ on-evaluation-failure: dont-run
+ condition-filename: artefacts-lava/job.yaml
+ condition-basedir: workspace
+ steps:
+ - shell: |
#!/bin/bash
set -e
DEVICE_TYPE=fvp
@@ -121,78 +151,62 @@
LAVA_SERVER=tf.validation.linaro.org
EOF
publishers:
- - archive:
- artifacts: artefacts/**, artefacts-lava/**
- latest-only: false
- allow-empty: true
- - conditional-publisher:
+ - archive:
+ artifacts: artefacts/**, lava-binmode.txt
+ latest-only: false
+ allow-empty: true
+ follow-symlinks: true
+ - conditional-publisher:
- condition-kind: file-exists
on-evaluation-failure: dont-run
condition-filename: artefacts-lava/job.yaml
condition-basedir: workspace
action:
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - SUCCESS
- build-steps:
- - inject:
- properties-file: ${WORKSPACE}/lava.param
- - shell: |
- #!/bin/bash
+ - postbuildscript:
+ mark-unstable-if-failed: true
+ builders:
+ - role: SLAVE
+ build-on:
+ - SUCCESS
+ build-steps:
+ - inject:
+ properties-file: ${WORKSPACE}/lava.param
+ - shell: |
+ #!/bin/bash -x
- squad='tf-a-job-configs/tf-a-builder/squad.sh'
- # FIXME: Juno and FVP jobs may fail due to non-related users changes,
- # so CI needs to resubmit the job, at most three times:
- # Juno jobs may fail due to LAVA lab infrastructure issues (see
- # https://projects.linaro.org/browse/LSS-2128)
- # FVP jobs may hang at some particular TFTF test (see
- # https://linaro.atlassian.net/browse/TFC-176)
- passed=0
- for i in $(seq 1 3); do
- echo "# SQUAD submission iteration #$i"
- if $squad; then
- passed=1
- break
- fi
- done
- if [ $passed -eq 0 ]; then
- echo "LAVA JOB RESULT: 1"
- else
- echo "LAVA JOB RESULT: 0"
- fi
- - postbuildscript:
- builders:
- - role: SLAVE
- build-on:
- - SUCCESS
- build-steps:
- - shell: |
- #!/bin/bash -e
- echo "=== Starting expect-post tests ==="
- ./tf-a-ci-scripts/script/expect-post-runner.sh
- - conditional-publisher:
+ tf-a-job-configs/tf-a-builder/submit-test-job.sh
+ status=$?
+ tf-a-job-configs/tf-a-builder/lava-log-process.sh
+ if [ $status -ne 0 ]; then
+ echo "LAVA JOB RESULT: 1"
+ exit 1
+ else
+ echo "LAVA JOB RESULT: 0"
+ fi
+ - postbuildscript:
+ builders:
+ - role: SLAVE
+ build-on:
+ - SUCCESS
+ build-steps:
+ - shell: |
+ #!/bin/bash -e
+ echo "=== Starting expect-post tests ==="
+ ./tf-a-ci-scripts/script/expect-post-runner.sh
+ - conditional-publisher:
- condition-kind: file-exists
on-evaluation-failure: dont-run
condition-filename: lava-raw-debug.log
condition-basedir: workspace
action:
- - archive:
- artifacts: lava-raw-debug.log
- latest-only: false
- allow-empty: true
- - conditional-publisher:
- - condition-kind: file-exists
- on-evaluation-failure: dont-run
- condition-filename: lava.log
- condition-basedir: workspace
- action:
- - archive:
- artifacts: lava.log, lava-*.log, feedback.log, config_file.json, covtrace-*.log, trace_report/**
- latest-only: false
- allow-empty: true
- - groovy-postbuild:
- script:
- !include-raw:
- - tf-a-builder/postbuild.groovy
+ - archive:
+ artifacts: lava-raw-debug.log
+ latest-only: false
+ allow-empty: true
+ - archive:
+ artifacts: lava.log, lava-*.log, tux.id, feedback.log, config_file.json, covtrace-*.log, trace_report/**
+ latest-only: false
+ allow-empty: true
+ - groovy-postbuild:
+ script: !include-raw:
+ - tf-a-builder/postbuild.groovy
diff --git a/loosper-arm-tf-a-ci-gateway.yaml b/loosper-arm-tf-a-ci-gateway.yaml
index bc61fa1..5faa3b9 100644
--- a/loosper-arm-tf-a-ci-gateway.yaml
+++ b/loosper-arm-tf-a-ci-gateway.yaml
@@ -8,104 +8,131 @@
description: |
Main job entry point for a Trusted Firmware A (TF-A) CI.
properties:
- - build-discarder:
- days-to-keep: 15
- - throttle:
- option: project
- enabled: true
- max-per-node: 3
- max-total: 10
- - authorization:
- !include: loosper-arm-authorization.yaml.inc
+ - 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: 180
- fail: true
- - timestamps
+ - 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: 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: SHARE_FOLDER
- default: '/srv/shared/staging/${JOB_NAME}/${BUILD_NUMBER}'
- description: 'Folder containing shared repositories for downstream pipeline jobs'
+ - 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/tfa_ci_dep_revision:refs/remotes/origin/tfa_ci_dep_revision
+ 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: +refs/heads/tfa_ci_dep_revision:refs/remotes/origin/tfa_ci_dep_revision
+ description: |
+ tf-m-extras refspec to use. The tfa_ci_dep_revision 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.
+ - string:
+ name: RMM_REFSPEC
+ default: +refs/heads/main:refs/remotes/origin/main
+ description: |
+ tf-rmm refspec to use. The main 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/staging/${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:
- - loosper-arm-tf-a-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
+ - 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
+ 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
+ - 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
diff --git a/loosper-arm-tf-a-daily.yaml b/loosper-arm-tf-a-daily.yaml
new file mode 100644
index 0000000..b2c4e2e
--- /dev/null
+++ b/loosper-arm-tf-a-daily.yaml
@@ -0,0 +1,84 @@
+- job:
+ name: loosper-arm-tf-a-daily
+ node: docker-amd64-tf-a-jammy
+ project-type: freestyle
+ concurrent: false
+ disabled: false
+ description: Triggers tf-a-windows-builder, tf-main and tf-coverity for the TF-A project.
+ properties:
+ - build-discarder:
+ days-to-keep: 14
+ num-to-keep: 60
+ parameters:
+ - string:
+ name: TF_GERRIT_PROJECT
+ default: TF-A/trusted-firmware-a
+ - string:
+ name: TF_GERRIT_BRANCH
+ default: refs/heads/integration
+ - string:
+ name: TF_GERRIT_REFSPEC
+ default: +refs/heads/integration:refs/remotes/origin/integration
+ - string:
+ name: TFTF_GERRIT_PROJECT
+ default: TF-A/tf-a-tests
+ - string:
+ name: TFTF_GERRIT_BRANCH
+ default: refs/heads/master
+ - string:
+ name: TFTF_GERRIT_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ - 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: RMM_REFSPEC
+ default: +refs/heads/main:refs/remotes/origin/main
+ description: |
+ tf-rmm refspec to use. The main branch is used by default.
+ - string:
+ name: CI_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ - string:
+ name: JOBS_REFSPEC
+ default: refs/heads/master
+ description: |
+ tf-a-job-configs refspec to use. The master branch is used by default.
+ - string:
+ name: MBEDTLS_URL
+ default: https://github.com/Mbed-TLS/mbedtls/archive/mbedtls-3.6.3.tar.gz
+ - string:
+ name: LAVA_PRIORITY
+ default: low
+ - string:
+ name: SHARE_FOLDER
+ default: /srv/shared/staging/${JOB_NAME}/${BUILD_NUMBER}
+ description: Folder containing shared repositories for downstream pipeline jobs
+ wrappers:
+ - timestamps
+ builders:
+ - shell: !include-raw: scripts/clone.sh
+ - shell: |
+ #!/bin/bash
+ set -e
+ cat << EOF > share.param
+ SHARE_FOLDER=${SHARE_FOLDER}
+ EOF
+ - trigger-builds:
+ - project:
+ - tf-a-main
+ block: true
+ current-parameters: true
+ property-file: share.param
+ - project:
+ - tf-a-coverity
+ block: true
+ current-parameters: true
+ property-file: share.param
+ - project:
+ - tf-a-windows-builder
+ block: true
+ current-parameters: true
+ property-file: share.param
diff --git a/loosper-arm-tf-a-main.yaml b/loosper-arm-tf-a-main.yaml
index dd2e5ed..d1c6edc 100644
--- a/loosper-arm-tf-a-main.yaml
+++ b/loosper-arm-tf-a-main.yaml
@@ -6,304 +6,358 @@
disabled: false
description: Main CI job for Trusted Firmware.
properties:
- - throttle:
- option: project
- enabled: true
- max-total: 5
- - build-discarder:
- days-to-keep: 14
- num-to-keep: 60
- - authorization:
- !include: loosper-arm-authorization.yaml.inc
+ - throttle:
+ option: project
+ enabled: true
+ max-total: 5
+ - build-discarder:
+ days-to-keep: 14
+ num-to-keep: 60
parameters:
- - string:
- name: TF_GERRIT_PROJECT
- default: 'TF-A/trusted-firmware-a'
- - string:
- name: TF_GERRIT_BRANCH
- default: 'refs/heads/integration'
- - string:
- name: TF_GERRIT_REFSPEC
- default: '+refs/heads/integration:refs/remotes/origin/integration'
- - string:
- name: TFTF_GERRIT_PROJECT
- default: 'TF-A/tf-a-tests'
- - string:
- name: TFTF_GERRIT_BRANCH
- default: 'refs/heads/master'
- - string:
- name: TFTF_GERRIT_REFSPEC
- default: '+refs/heads/master:refs/remotes/origin/master'
- - string:
- name: CI_REFSPEC
- default: '+refs/heads/master:refs/remotes/origin/master'
- - string:
- name: SHARE_FOLDER
- default: '/srv/shared/staging/${JOB_NAME}/${BUILD_NUMBER}'
- description: 'Folder containing shared repositories for downstream pipeline jobs'
+ - string:
+ name: TF_GERRIT_PROJECT
+ default: TF-A/trusted-firmware-a
+ - string:
+ name: TF_GERRIT_BRANCH
+ default: refs/heads/integration
+ - string:
+ name: TF_GERRIT_REFSPEC
+ default: +refs/heads/integration:refs/remotes/origin/integration
+ - string:
+ name: TFTF_GERRIT_PROJECT
+ default: TF-A/tf-a-tests
+ - string:
+ name: TFTF_GERRIT_BRANCH
+ default: refs/heads/master
+ - string:
+ name: TFTF_GERRIT_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ - 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: RMM_REFSPEC
+ default: +refs/heads/main:refs/remotes/origin/main
+ description: |
+ tf-rmm refspec to use. The main branch is used by default.
+ - string:
+ name: CI_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ - string:
+ name: JOBS_REFSPEC
+ default: refs/heads/master
+ description: |
+ tf-a-job-configs refspec to use. The master branch is used by default.
+ - string:
+ name: MBEDTLS_URL
+ default: https://github.com/Mbed-TLS/mbedtls/archive/mbedtls-3.6.3.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/staging/${JOB_NAME}/${BUILD_NUMBER}
+ description: Folder containing shared repositories for downstream pipeline jobs
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: ''
+ 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: loosper-arm-tf-a-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: loosper-arm-tf-a-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: loosper-arm-tf-a-ci-gateway
- current-parameters: true
- kill-phase-on: NEVER
- predefined-parameters: TEST_GROUPS=tf-l1-build-plat
- property-file: tf-a-env.param
- - name: loosper-arm-tf-a-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 for FVP
- condition: COMPLETED
- projects:
- - name: loosper-arm-tf-a-ci-gateway
- current-parameters: true
- kill-phase-on: NEVER
- predefined-parameters: TEST_GROUPS=tftf-l2-fwu
- property-file: tf-a-tests-env.param
- - name: loosper-arm-tf-a-ci-gateway
- 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: loosper-arm-tf-a-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: loosper-arm-tf-a-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: loosper-arm-tf-a-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: loosper-arm-tf-a-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: loosper-arm-tf-a-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: loosper-arm-tf-a-ci-gateway
- current-parameters: true
- kill-phase-on: NEVER
- predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-spm-mm
- property-file: tf-a-env.param
- - name: loosper-arm-tf-a-ci-gateway
- 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: loosper-arm-tf-a-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: loosper-arm-tf-a-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: loosper-arm-tf-a-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: loosper-arm-tf-a-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: loosper-arm-tf-a-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
- - name: loosper-arm-tf-a-ci-gateway
- 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: loosper-arm-tf-a-ci-gateway
- current-parameters: true
- kill-phase-on: NEVER
- predefined-parameters: TEST_GROUPS=tf-l1-boot-tests-juno
- property-file: tf-a-env.param
- - name: loosper-arm-tf-a-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: loosper-arm-tf-a-ci-gateway
- 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: loosper-arm-tf-a-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: loosper-arm-tf-a-ci-gateway
- current-parameters: true
- kill-phase-on: NEVER
- predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-spm-mm
- property-file: tf-a-env.param
- - name: loosper-arm-tf-a-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: loosper-arm-tf-a-ci-gateway
- current-parameters: true
- kill-phase-on: NEVER
- predefined-parameters: TEST_GROUPS=tf-l3-boot-tests-misc
- property-file: tf-a-env.param
- - name: loosper-arm-tf-a-ci-gateway
- current-parameters: true
- kill-phase-on: NEVER
- predefined-parameters: TEST_GROUPS=spm-l3-boot-tests
- property-file: tf-a-env.param
- - name: loosper-arm-tf-a-ci-gateway
- 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: loosper-arm-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: loosper-arm-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: loosper-arm-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
+ - 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-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-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: 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-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-l2-boot-tests-partner-boards
+ current-parameters: true
+ kill-phase-on: NEVER
+ predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-partner-boards
+ property-file: tf-a-env.param
+ # Platform-specific self-tests.
+ # These tests run from the BL31 image then halt the target.
+ - name: tf-a-ci-gateway
+ alias: tf-l2-boot-tests-arm-plats
+ current-parameters: true
+ kill-phase-on: NEVER
+ predefined-parameters: TEST_GROUPS=tf-l2-boot-tests-arm-plats
+ property-file: tf-a-env.param
+ - multijob:
+ name: Run doc build check
+ condition: COMPLETED
+ projects:
+ - name: tf-a-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-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 echo ${JENKINS_PUBLIC_URL} | grep -q "ci.trustedfirmware.org"; then
+ # Only do it on the OpenCI production site
+ echo "It's running on the OpenCI procution site"
+ 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
+ else
+ echo "It's NOT on the OpenCI production site"
+ fi
diff --git a/loosper-arm-tf-a-static-checks.yaml b/loosper-arm-tf-a-static-checks.yaml
new file mode 100644
index 0000000..3b5f166
--- /dev/null
+++ b/loosper-arm-tf-a-static-checks.yaml
@@ -0,0 +1,90 @@
+- job:
+ name: loosper-arm-tf-a-static-checks
+ node: docker-amd64-tf-a-jammy
+ project-type: freestyle
+ concurrent: true
+ disabled: false
+ defaults: global
+ description: Run static checks on Git repository
+ properties:
+ - build-discarder:
+ days-to-keep: 14
+ parameters:
+ - string:
+ name: TF_GERRIT_PROJECT
+ default: TF-A/trusted-firmware-a
+ - string:
+ name: TF_GERRIT_BRANCH
+ default: refs/heads/integration
+ - string:
+ name: TF_GERRIT_REFSPEC
+ default: +refs/heads/integration:refs/remotes/origin/integration
+ - string:
+ name: TFTF_GERRIT_PROJECT
+ default: TF-A/tf-a-tests
+ - string:
+ name: TFTF_GERRIT_BRANCH
+ default: refs/heads/master
+ - string:
+ name: TFTF_GERRIT_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ - string:
+ name: CI_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ - string:
+ name: JOBS_REFSPEC
+ default: refs/heads/master
+ description: |
+ tf-a-job-configs refspec to use. The master branch is used by default.
+ - choice:
+ name: REPO_UNDER_TEST
+ choices:
+ - trusted-firmware-a
+ - tf-a-tests
+ default: trusted-firmware-a
+ description: Repository to run static checks on.
+ - string:
+ name: GERRIT_BRANCH
+ default: ""
+ - string:
+ name: SHARE_FOLDER
+ default: /srv/shared/staging/${JOB_NAME}/${BUILD_NUMBER}
+ description: Folder containing shared repositories for downstream pipeline jobs
+ wrappers:
+ - timestamps
+ - timeout:
+ timeout: 240
+ fail: true
+ builders:
+ - shell: !include-raw: scripts/clone.sh
+ - shell: |
+ #!/bin/bash
+ set -e
+ if [[ "${REPO_UNDER_TEST}" == trusted-firmware-a ]]; then
+ cat <<EOF > env.param
+ QA_SERVER_PROJECT=${JOB_NAME}
+ QA_SERVER_VERSION=${BUILD_NUMBER}
+ GERRIT_PROJECT=${TF_GERRIT_PROJECT}
+ GERRIT_BRANCH=${TF_GERRIT_BRANCH}
+ GERRIT_REFSPEC=${TF_GERRIT_REFSPEC}
+ TEST_GROUPS=tf-l2-scan-build
+ EOF
+ fi
+ cd ${WORKSPACE}/${REPO_UNDER_TEST}
+ # Executed project-related static checks: copyright presence, headers in alphabetical order,
+ # line endings, coding style and banned API.
+ IS_CONTINUOUS_INTEGRATION=1 ${WORKSPACE}/tf-a-ci-scripts/script/static-checks/static-checks.sh
+ - trigger-builds:
+ - project: tf-a-ci-gateway
+ block: true
+ property-file: env.param
+ current-parameters: true
+ # Do not trigger tf-a-ci-gateway if env.param file does not exist,
+ # which is the case here for TF-A Tests repository
+ property-file-fail-on-missing: True
+ publishers:
+ - archive:
+ artifacts: ${REPO_UNDER_TEST}/static-checks.log
+ - groovy-postbuild:
+ script: !include-raw:
+ - tf-a-static-checks/postbuild.groovy
diff --git a/loosper-arm-tf-a-tftf-main.yaml b/loosper-arm-tf-a-tftf-main.yaml
new file mode 100644
index 0000000..0ec3652
--- /dev/null
+++ b/loosper-arm-tf-a-tftf-main.yaml
@@ -0,0 +1,147 @@
+- job:
+ name: loosper-arm-tf-a-tftf-main
+ description: Main CI job for the Trusted Firmware-A Test Framework.
+ node: docker-amd64-tf-a-jammy
+ project-type: multijob
+ concurrent: true
+ disabled: false
+ properties:
+ - build-discarder:
+ days-to-keep: 14
+ num-to-keep: 60
+ - throttle:
+ option: project
+ enabled: true
+ max-total: 5
+ parameters:
+ - string:
+ name: TF_GERRIT_PROJECT
+ default: TF-A/trusted-firmware-a
+ description: Gerrit project name for Trusted Firmware-A.
+ - string:
+ name: TF_GERRIT_BRANCH
+ default: refs/heads/integration
+ description: Git project branch for Trusted Firmware-A.
+ - string:
+ name: TF_GERRIT_REFSPEC
+ default: +refs/heads/integration:refs/remotes/origin/integration
+ description: Git refspec for Trusted Firmware-A.
+ - string:
+ name: TFTF_GERRIT_PROJECT
+ default: TF-A/tf-a-tests
+ description: Gerrit project name for the Trusted Firmware-A Test Framework.
+ - string:
+ name: TFTF_GERRIT_BRANCH
+ default: refs/heads/master
+ description: Git branch for the Trusted Firmware-A Test Framework.
+ - string:
+ name: TFTF_GERRIT_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ description: Git refspec for the Trusted Firmware-A Test Framework.
+ - string:
+ name: CI_REFSPEC
+ default: +refs/heads/master:refs/remotes/origin/master
+ description: Git refspec for the Trusted Firmware-A CI scripts.
+ - string:
+ name: RMM_REFSPEC
+ default: +refs/heads/main:refs/remotes/origin/main
+ description: |
+ tf-rmm refspec to use. The main 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.
+ - string:
+ name: SHARE_FOLDER
+ default: /srv/shared/staging/${JOB_NAME}/${BUILD_NUMBER}
+ description: Folder containing shared repositories for downstream pipeline jobs.
+ 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
+
+ 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:
+ condition: COMPLETED
+ name: Static checks on TFTF
+ projects:
+ - current-parameters: true
+ kill-phase-on: NEVER
+ name: tf-a-static-checks
+ predefined-parameters: REPO_UNDER_TEST=tf-a-tests
+ property-file: tf-a-tests-env.param
+ - multijob:
+ condition: COMPLETED
+ name: Build TFTF
+ projects:
+ - current-parameters: true
+ kill-phase-on: NEVER
+ name: tf-a-ci-gateway
+ alias: tftf-l1-build
+ predefined-parameters: TEST_GROUPS=tftf-l1-build
+ property-file: tf-a-tests-env.param
+ - multijob:
+ condition: COMPLETED
+ name: Run TFTF FWU
+ projects:
+ - current-parameters: true
+ kill-phase-on: NEVER
+ name: tf-a-ci-gateway
+ alias: tftf-l2-fwu
+ predefined-parameters: TEST_GROUPS=tftf-l2-fwu
+ property-file: tf-a-tests-env.param
+ - multijob:
+ condition: COMPLETED
+ name: Run TFTF
+ projects:
+ - current-parameters: true
+ kill-phase-on: NEVER
+ name: tf-a-ci-gateway
+ alias: tftf-l1-fvp tftf-l1-juno
+ predefined-parameters: TEST_GROUPS=tftf-l1-fvp tftf-l1-juno
+ property-file: tf-a-tests-env.param
+ - current-parameters: true
+ kill-phase-on: NEVER
+ name: tf-a-ci-gateway
+ alias: tftf-l2-fvp-auxiliary tftf-l2-fvp-dynamiq
+ predefined-parameters: TEST_GROUPS=tftf-l2-fvp-auxiliary tftf-l2-fvp-dynamiq
+ property-file: tf-a-tests-env.param
+ - current-parameters: true
+ kill-phase-on: NEVER
+ name: tf-a-ci-gateway
+ alias: spm-l2-boot-tests tf-l2-boot-tests-spm-mm
+ predefined-parameters: TEST_GROUPS=spm-l2-boot-tests tf-l2-boot-tests-spm-mm
+ property-file: tf-a-tests-env.param
+ - current-parameters: true
+ kill-phase-on: NEVER
+ name: tf-a-ci-gateway
+ alias: spm-l3-boot-tests tf-l3-boot-tests-spm-mm
+ predefined-parameters: TEST_GROUPS=spm-l3-boot-tests tf-l3-boot-tests-spm-mm
+ property-file: tf-a-tests-env.param
+ - multijob:
+ condition: SUCCESSFUL
+ name: Run TFTF Extensive
+ projects:
+ - current-parameters: true
+ kill-phase-on: FAILURE
+ name: tf-a-ci-gateway
+ alias: tftf-l2-extensive-tests-fvp
+ predefined-parameters: TEST_GROUPS=tftf-l2-extensive-tests-fvp
+ property-file: tf-a-tests-env.param