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

- job:
    name: tf-m-nightly-performance
    description: 'TF-M Profiling and Memory Footprint'
    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: "profiling mem_footprint"
          description: |
            Filter to a group of configurations as recognised by configs.py
      - string:
          name: 'CODE_REPO'
          default: 'https://git.trustedfirmware.org/TF-M/trusted-firmware-m'
      - string:
          name: 'CI_SCRIPTS_REPO'
          default: 'https://git.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: '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_TOOLS_URL'
          default: 'https://git.trustedfirmware.org/TF-M/tf-m-tools.git'
      - string:
          name: 'TFM_TOOLS_REFSPEC'
          default: ''
          description: |
            Specify which tf-m-tools 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: SHARE_FOLDER
          default: '/srv/shared/${JOB_NAME}/${BUILD_NUMBER}'
          description: 'Folder containing shared repositories for downstream pipeline jobs'
      - string:
          name: 'DEVICE_FILTER'
          default: '--physical-board-only'
          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)
    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
