#-------------------------------------------------------------------------------
# Copyright (c) 2020-2025, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
#-------------------------------------------------------------------------------

- job:
    name: tf-m-nightly
    description: 'Build that triggers nightly to build many configurations.'
    project-type: pipeline
    disabled: false
    sandbox: true
    concurrent: true
    properties:
      - build-discarder:
          days-to-keep: 15
          num-to-keep: 45
    triggers:
      - timed: 'H 23 * * *'
    parameters:
      - string:
          name: 'FILTER_GROUP'
          default: "nightly_test nightly_profile_s nightly_profile_m nightly_profile_m_arotless \
                    nightly_profile_l nightly_cc_driver_psa nightly_fp nightly_psa_api \
                    nightly_ipc_backend nightly_nsce nightly_mmio nightly_cs300_an547  \
                    nightly_cs300_an552 nightly_cs300_fvp \
                    nightly_corstone310 nightly_corstone310_pacbti \
                    nightly_corstone315 nightly_corstone320 \
                    nightly_corstone1000 nightly_rse_tc4 nightly_psoc64 \
                    nightly_lpcxpresso55s69 nightly_b_u585i_iot02a nightly_stm32h573i_dk"
          description: |
            Filter to a group of configurations as recognised by configs.py
      - string:
          name: 'CODE_REPO'
          default: 'https://review.trustedfirmware.org/TF-M/trusted-firmware-m'
      - string:
          name: 'CI_SCRIPTS_REPO'
          default: 'https://review.trustedfirmware.org/ci/tf-m-ci-scripts'
      - string:
          name: 'CI_SCRIPTS_BRANCH'
          default: 'master'
          description: |
            Branch of CI_SCRIPTS_REPO to use; also accepts Gerrit patch refspec like 'refs/changes/98/29798/1'
      - string:
          name: 'GERRIT_REFSPEC'
          default: 'refs/heads/main'
          description: |
            Specify which TF-M version to use
            refs/heads/<branch_name> : Pick up latest HEAD on branch
            TAG_NAME                 : Pick up a tagged version
            full commit hash         : Pick up a specific commit
      - string:
          name: 'GERRIT_BRANCH'
          default: 'main'
          description: |
            TF-M branch.
      - string:
          name: 'GERRIT_HOST'
          description: |
            No need to change.
      - string:
          name: 'GERRIT_CHANGE_NUMBER'
          description: |
            No need to change.
      - string:
          name: 'GERRIT_PATCHSET_REVISION'
          description: |
            No need to change.
      - string:
          name: 'MBEDTLS_VERSION'
          default: ''
          description: |
            Specify which MBEDTLS version to use
            refs/heads/<branch_name> : Pick up latest HEAD on branch
            TAG_NAME                 : Pick up a tagged version
            full commit hash         : Pick up a specific commit
      - string:
          name: 'MBEDTLS_URL'
          default: 'https://git.trustedfirmware.org/mirror/mbed-tls.git'
      - string:
          name: 'LAVA_URL'
          default: 'https://tf.validation.linaro.org'
      - string:
          name: 'CODE_COVERAGE_EN'
          default: 'FALSE'
      - string:
          name: 'LAVA_CREDENTIALS'
          default: 'LAVA_CREDENTIALS'
          description: "Name of Jenkins credential for authentication with LAVA."
      - string:
          name: 'EMAIL_NOTIFICATION'
          default: 'tf-m-ci-notifications@lists.trustedfirmware.org, paul.sokolovsky@linaro.org, matthew.dalzell@arm.com, anton.komlev@arm.com, antonio.deangelis@arm.com'
          description: |
            Send email notification when test failed.
      - string:
          name: 'MCUBOOT_REFSPEC'
          default: ''
          description: |
            Specify which MCUboot version to use
            refs/heads/<branch_name> : Pick up latest HEAD on branch
            TAG_NAME                 : Pick up a tagged version
            full commit hash         : Pick up a specific commit
      - string:
          name: 'MCUBOOT_URL'
          default: 'https://git.trustedfirmware.org/mirror/mcuboot.git'
      - string:
          name: 'TFM_TESTS_URL'
          default: 'https://git.trustedfirmware.org/TF-M/tf-m-tests.git'
      - string:
          name: 'TFM_TESTS_REFSPEC'
          default: ''
          description: |
            Specify which tf-m-tests version to use
            refs/heads/<branch_name> : Pick up latest HEAD on branch
            TAG_NAME                 : Pick up a tagged version
            full commit hash         : Pick up a specific commit
      - string:
          name: 'TFM_EXTRAS_URL'
          default: 'https://review.trustedfirmware.org/TF-M/tf-m-extras.git'
      - string:
          name: 'TFM_EXTRAS_REFSPEC'
          default: ''
          description: |
            Specify which tf-m-extras version to use
            refs/heads/<branch_name> : Pick up latest HEAD on branch
            TAG_NAME                 : Pick up a tagged version
            full commit hash         : Pick up a specific commit
      - string:
          name: 'PSA_ARCH_TESTS_URL'
          default: 'https://git.trustedfirmware.org/mirror/psa-arch-tests.git'
      - string:
          name: 'PSA_ARCH_TESTS_VERSION'
          default: ''
          description: |
            Specify which psa-arch-tests version to use
            refs/heads/<branch_name> : Pick up latest HEAD on branch
            TAG_NAME                 : Pick up a tagged version
            full commit hash         : Pick up a specific commit
      - string:
          name: 'QCBOR_URL'
          default: 'https://github.com/laurencelundblade/QCBOR.git'
      - string:
          name: 'QCBOR_VERSION'
          default: ''
          description: |
            Specify which QCBOR version to use
            refs/heads/<branch_name> : Pick up latest HEAD on branch
            TAG_NAME                 : Pick up a tagged version
            full commit hash         : Pick up a specific commit
      - string:
          name: 'T_COSE_URL'
          default: 'https://github.com/laurencelundblade/t_cose.git'
      - string:
          name: 'T_COSE_VERSION'
          default: ''
          description: |
            Specify which t_cose version to use
            refs/heads/<branch_name> : Pick up latest HEAD on branch
            TAG_NAME                 : Pick up a tagged version
            full commit hash         : Pick up a specific commit
      - string:
          name: SHARE_FOLDER
          default: '/srv/shared/${JOB_NAME}/${BUILD_NUMBER}'
          description: 'Folder containing shared repositories for downstream pipeline jobs'
      - string:
          name: 'DEVICE_FILTER'
          default: ''
          description: |
            Parameter to lava_create_jobs.py to filter by device type (e.g. --fvp-only or --physical-board-only)
      - string:
          name: USE_TUXSUITE_FVP
          default: 1
          description: |
            Whether to submit FVP tests via TuxSuite (instead of LAVA)
      - string:
          name: 'BUILD_JOBS'
          default: '2'
          description: |
            --jobs to pass to make, etc.
    wrappers:
        - timestamps
    pipeline-scm:
      scm:
        - git:
            url: '$CI_SCRIPTS_REPO'
            branches:
            - '$CI_SCRIPTS_BRANCH'
            refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/remotes/origin/refs/changes/*'
            credentials-id: GIT_SSH_KEY
            wipe-workspace: false
      script-path: jenkins/ci.jpl
