blob: 5a3bbd5c46b690e246b2317e9f90b2f4194aa12d [file] [log] [blame]
- job:
name: tf-a-main-tfa-next
node: docker-amd64-tf-a-jammy
project-type: multijob
concurrent: true
disabled: false
description: Main CI job for Trusted Firmware Next
properties:
- throttle:
option: project
enabled: true
max-total: 5
- build-discarder:
days-to-keep: 14
num-to-keep: 60
triggers:
- gerrit:
server-name: review.trustedfirmware.org
projects:
- branches:
- branch-compare-type: PLAIN
branch-pattern: tfa-next
project-compare-type: PLAIN
project-pattern: TF-A/trusted-firmware-a
trigger-on:
- patchset-created-event:
exclude-drafts: true
exclude-trivial-rebase: false
exclude-no-code-change: true
exclude-private: true
exclude-wip: true
- comment-added-contains-event:
comment-contains-value: ^RUN_CI$
override-votes: true
gerrit-build-started-verified-value: 0
gerrit-build-successful-verified-value: 1
gerrit-build-failed-verified-value: -1
gerrit-build-unstable-verified-value: -1
gerrit-build-notbuilt-verified-value: 0
# without explicitly setting these values to 0, the plugin will by
# default leave Code Review votes
gerrit-build-started-codereview-value: 0
gerrit-build-successful-codereview-value: 0
gerrit-build-failed-codereview-value: 0
gerrit-build-unstable-codereview-value: 0
gerrit-build-notbuilt-codereview-value: 0
silent: false
silent-start: false
parameters:
# GERRIT_{PROJECT,BRANCH,REFSPEC} are set when triggered by a Gerrit
# patchset - defaults below are for manual triggers
- string:
name: GERRIT_PROJECT
default: TF-A/trusted-firmware-a
- string:
name: GERRIT_BRANCH
default: refs/heads/tfa-next
- string:
name: GERRIT_REFSPEC
default: +refs/heads/tfa-next:refs/remotes/origin/tfa-next
description: |
'e.g. refs/changes/13/31138/1'
- string:
name: TF_GERRIT_REFSPEC
default: ${GERRIT_REFSPEC}
description: |
'do-not-amend: used by scripts/clone.sh to fetch the correct Gerrit patchset - use GERRIT_REFSPEC instead'
- 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/tfa-next:refs/remotes/origin/tfa-next
description: |
'Refs to fetch for the tf-a-ci-scripts repo e.g. refs/changes/13/31138/1'
- 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/${JOB_NAME}/${BUILD_NUMBER}
description: Folder containing shared repositories for downstream pipeline jobs
- string:
name: CLONE_REPOS
default: tf-a-ci-scripts,trusted-firmware-a
description: |
Optional arg to clone only specific projects from default list (tf-a-ci-scripts,trusted-firmware-a,tf-a-tests,spm,tf-m-tests,tf-m-extras)
- string:
name: FETCH_SSH
default: 1
description: |
Fetch branches with authenticated SSH instead of anonymous HTTPS
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
TF_GERRIT_PROJECT=${GERRIT_PROJECT}
TF_GERRIT_BRANCH=${GERRIT_BRANCH}
TF_GERRIT_REFSPEC=${GERRIT_REFSPEC}
SHARE_FOLDER=${SHARE_FOLDER}
EOF
- multijob:
name: Lint commit messages
condition: COMPLETED
projects:
- name: tf-a-commitlint-tfa-next
kill-phase-on: NEVER
predefined-parameters: |
REFSPEC=${GERRIT_REFSPEC}
REFNAME=${GERRIT_PATCHSET_REVISION}
REFNAME_BASE=origin/${GERRIT_BRANCH}
- multijob:
name: Code formatting, static checks and lints
condition: COMPLETED
projects:
- name: tf-a-static-tfa-next
current-parameters: true
kill-phase-on: NEVER
property-file: tf-a-env.param
- multijob:
name: Platform independent tests
condition: COMPLETED
projects:
- name: generic-lib-testing
current-parameters: true
kill-phase-on: NEVER
predefined-parameters: |
TEST_REPO_NAME=trusted-firmware-a
TEST_REPO_PROJECT=TF-A
property-file: tf-a-env.param
- multijob:
name: Build Trusted Firmware
condition: COMPLETED
projects:
- name: tf-a-ci-gateway-tfa-next
alias: tf-next-build
current-parameters: true
kill-phase-on: NEVER
predefined-parameters: |
TEST_GROUPS=tf-next-build
property-file: tf-a-env.param
- multijob:
name: FVP Tests
condition: COMPLETED
projects:
- name: tf-a-ci-gateway-tfa-next
alias: rfa-fvp
current-parameters: true
kill-phase-on: NEVER
predefined-parameters: |
TEST_GROUPS=rfa-fvp
property-file: tf-a-env.param