#!/usr/bin/env groovy
//-------------------------------------------------------------------------------
// Copyright (c) 2020-2024, Arm Limited and Contributors. All rights reserved.
//
// SPDX-License-Identifier: BSD-3-Clause
//
//-------------------------------------------------------------------------------

@Library('trustedfirmware') _
import org.trustedfirmware.Gerrit

timestamps {
  node("docker-amd64-tf-m-jammy") {
    // Clone TF-M repositories so share folder can be reused by downstream jobs
    stage("Init") {
      cleanWs()
      dir("tf-m-ci-scripts") {
        checkout([$class: 'GitSCM', branches: [[name: '$CI_SCRIPTS_BRANCH']], userRemoteConfigs: [[credentialsId: 'GIT_SSH_KEY', url: '$CI_SCRIPTS_REPO']]])
        sh "./clone.sh"
      }
    }
    stage("Check") {
      def verify = 1
      try {
        sh """
           cd trusted-firmware-m
           export GIT_REF_ARG=""
           if [ ! -z "\$GERRIT_PATCHSET_REVISION" ] ; then
             export GIT_REF_ARG="HEAD"
           fi
           ../tf-m-ci-scripts/run-cppcheck.sh -r \$GIT_REF_ARG
           """
      } catch (Exception e) {
        manager.buildFailure()
        verify = -1
      } finally {
        g = new Gerrit()
        g.verifyStatusInWorkspace(verify, 'cppcheck', 'static')
        def buildStatus = (verify == 1) ? 'Successful' : 'Failed'
        //g.commentInWorkspace("Build cppcheck ${buildStatus}: ${env.RUN_DISPLAY_URL}")
        cleanWs()
      }
    }
  }
}
