#!/usr/bin/env groovy
//-------------------------------------------------------------------------------
// Copyright (c) 2020, 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-bionic") {
    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"
      }
    }
    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()
    }
  }
  node("master") {
    if (env.JOB_NAME.equals("tf-m-build-docs-nightly")) {
      // Copy, then as atomically as possible replace previous docs with new.
      sh """
         cp -a /var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/archive/trusted-firmware-m/build/docs/reference_manual /var/jenkins_home/docs/reference_manual.new
         cp -a /var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/archive/trusted-firmware-m/build/docs/user_guide /var/jenkins_home/docs/user_guide.new
         rm -rf /var/jenkins_home/docs/reference_manual.old /var/jenkins_home/docs/user_guide.old
         mv /var/jenkins_home/docs/reference_manual /var/jenkins_home/docs/reference_manual.old
         mv /var/jenkins_home/docs/user_guide /var/jenkins_home/docs/user_guide.old
         mv /var/jenkins_home/docs/reference_manual.new /var/jenkins_home/docs/reference_manual
         mv /var/jenkins_home/docs/user_guide.new /var/jenkins_home/docs/user_guide
         """
    }
  }
}
