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

- job:
    name: tf-m-code-coverage
    description: 'Build to generate code coverage data.'
    project-type: pipeline
    disabled: false
    sandbox: true
    concurrent: true
    properties:
      - build-discarder:
          days-to-keep: 90
          num-to-keep: 45
    triggers:
      - timed: 'H 1 * * 6'
    parameters:
      - string:
          name: 'FILTER_GROUP'
          default: "coverage_profile_s coverage_profile_m coverage_profile_l \
                    coverage_ipc_backend coverage_nsce coverage_mmio coverage_fp"
          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: |
            For use when triggering with specified tag or master 'refs/heads/main' or 'refs/tags/TF-Mv1.0'.
      - 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: '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: 'LAVA_URL'
          default: 'https://tf.validation.linaro.org'
      - string:
          name: 'CODE_COVERAGE_EN'
          default: 'TRUE'
      - string:
          name: 'LCOV_FLAGS'
          default: '--quiet'
          description: |
            Additional flags to pass to lcov
      - 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_EXTRAS_URL'
          default: 'https://git.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: '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: 'EMAIL_NOTIFICATION'
          default: 'matthew.dalzell@arm.com, paul.sokolovsky@linaro.org'
      - 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: '--fvp-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
