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