#!/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") {
    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']]])
        // Clone TF-M repositories so share folder can be reused by downstream jobs
        sh "./clone.sh"
      }
    }
    stage("Check") {
      def verify = 1
      try {
        sh """
           cd trusted-firmware-m
           IS_CONTINUOUS_INTEGRATION=1 ../tf-m-ci-scripts/run-static-checks.sh
           """
      } catch (Exception e) {
        manager.buildFailure()
        verify = -1
      } finally {
        g = new Gerrit()
        g.verifyStatusInWorkspace(verify, 'static-checks', 'static')
        def buildStatus = (verify == 1) ? 'Successful' : 'Failed'
        //g.commentInWorkspace("Build checkpatch ${buildStatus}: ${env.RUN_DISPLAY_URL}")
        cleanWs()
      }
    }
  }
}
