blob: 480f59874b633950b111c24e147040d597a530a1 [file] [log] [blame]
Dean Birch62c4f082020-01-17 16:13:26 +00001#!/usr/bin/env groovy
2//-------------------------------------------------------------------------------
Xinyu Zhangbbe2d762022-01-19 10:36:11 +08003// Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
Dean Birch62c4f082020-01-17 16:13:26 +00004//
5// SPDX-License-Identifier: BSD-3-Clause
6//
7//-------------------------------------------------------------------------------
8
Dean Birchd0f9f8c2020-03-26 11:10:33 +00009@Library('trustedfirmware') _
10import org.trustedfirmware.Gerrit
11
Benjamin Copelandbe53b032020-10-30 19:57:59 +000012def nodeLabel = "docker-amd64-tf-m-bionic"
Dean Birchd0f9f8c2020-03-26 11:10:33 +000013if (env.COMPILER == "ARMCLANG") {
Benjamin Copelandbe53b032020-10-30 19:57:59 +000014 nodeLabel = "docker-amd64-tf-m-bionic"
Dean Birchd0f9f8c2020-03-26 11:10:33 +000015}
16
Xinyu Zhangab21b8d2021-04-30 14:15:09 +080017@NonCPS
18def getUpstreamJob() {
19 def cause = manager.build.getAction(hudson.model.CauseAction.class).getCauses()
20 return cause
21}
22
Xinyu Zhang4cdfd1b2021-05-21 15:10:49 +080023timestamps {
24 node(nodeLabel) {
25 stage("Init") {
26 cleanWs()
Xinyu Zhang4cdfd1b2021-05-21 15:10:49 +080027 dir("tf-m-ci-scripts") {
28 checkout([$class: 'GitSCM', branches: [[name: '$CI_SCRIPTS_BRANCH']], userRemoteConfigs: [[credentialsId: 'GIT_SSH_KEY', url: '$CI_SCRIPTS_REPO']]])
Xinyu Zhang8472b852021-09-04 00:13:34 +080029 sh "git rev-parse --short HEAD"
Leonardo Sandoval7090b2c2021-09-17 13:20:44 -050030 // Clone TF-M repositories so share folder can be reused by downstream jobs
31 sh "./clone.sh"
Hugo L'Hostise55a2752021-01-27 11:09:08 +000032 }
Dean Birchd0f9f8c2020-03-26 11:10:33 +000033 }
Xinyu Zhang4cdfd1b2021-05-21 15:10:49 +080034 try {
35 verify = 1
36 stage("Build") {
37 sh "tf-m-ci-scripts/run-build.sh"
38 }
39 stage("Post") {
40 archiveArtifacts 'trusted-firmware-m/build/bin/**'
41 archiveArtifacts 'trusted-firmware-m/build/install/interface/**'
42 def upstreamProject = getUpstreamJob()[0].upstreamProject
43 if (upstreamProject == "tf-m-build-and-test") {
44 archiveArtifacts 'trusted-firmware-m/build/generated/**'
45 }
46 if (env.SQUAD_CONFIGURATIONS != ""){
47 //Creating a folder to store memory footprint artifacts and launching the memory footprint script.
Xinyu Zhangbbe2d762022-01-19 10:36:11 +080048 sh "mkdir tf-m-ci-scripts/Memory_footprint/ ; export PATH=${env.PATH}:${env.GCC_7_3_1_PATH}"
Xinyu Zhang4cdfd1b2021-05-21 15:10:49 +080049 withCredentials([string(credentialsId: 'QA_REPORTS_TOKEN', variable: 'TOKEN')]) {
50 sh(script: "python3 tf-m-ci-scripts/memory_footprint.py ${env.WORKSPACE}/trusted-firmware-m/ ${env.CONFIG_NAME} \'${env.SQUAD_CONFIGURATIONS}\' ${TOKEN}", returnStdout: true)
51 }
52 if (fileExists('tf-m-ci-scripts/Memory_footprint/filesize.json')) {
53 archiveArtifacts 'tf-m-ci-scripts/Memory_footprint/filesize.json'
54 }
55 }
56 }
57 } catch (Exception e) {
58 manager.buildFailure()
59 verify = -1
60 } finally {
61 g = new Gerrit()
62 g.verifyStatusInWorkspace(verify, env.CONFIG_NAME, 'build')
63 def buildStatus = (verify == 1) ? 'Successful' : 'Failed'
64 //g.commentInWorkspace("Build configuration ${env.CONFIG_NAME} ${buildStatus}: ${env.RUN_DISPLAY_URL}")
65 cleanWs()
66 }
Dean Birch62c4f082020-01-17 16:13:26 +000067 }
68}