Various fixes
* Retrieve build commands from build_manager
* fixing psa build dir
* Use different node labels for different builds
* Add script to download jenkins artifacts
* Verify status per stage
* Moving code to library
* Ability to comment on gerrit change
Change-Id: I390674b7ed6cfd20e4746a2d32e708fd6855857b
Signed-off-by: Dean Birch <dean.birch@arm.com>
diff --git a/jenkins/ci.jpl b/jenkins/ci.jpl
index 743d6c5..e20b9a3 100644
--- a/jenkins/ci.jpl
+++ b/jenkins/ci.jpl
@@ -6,7 +6,9 @@
//
//-------------------------------------------------------------------------------
-library identifier: 'local-lib@master', retriever: legacySCM(scm)
+@Library('trustedfirmware') _
+import org.trustedfirmware.Gerrit
+import org.trustedfirmware.Summary
def listConfigs(ci_scripts_dir, config_list, filter_group) {
dir(ci_scripts_dir) {
@@ -37,6 +39,9 @@
params += string(name: key, value: value)
}
params += string(name: 'GERRIT_BRANCH', value: env.GERRIT_BRANCH)
+ params += string(name: 'GERRIT_HOST', value: env.GERRIT_HOST)
+ params += string(name: 'GERRIT_CHANGE_NUMBER', value: env.GERRIT_CHANGE_NUMBER)
+ params += string(name: 'GERRIT_PATCHSET_REVISION', value: env.GERRIT_PATCHSET_REVISION)
params += string(name: 'GERRIT_REFSPEC', value: env.GERRIT_REFSPEC)
params += string(name: 'CMSIS_VERSION', value: env.CMSIS_VERSION)
params += string(name: 'MBEDCRYPTO_VERSION', value: env.MBEDCRYPTO_VERSION)
@@ -64,6 +69,9 @@
def buildDocs() {
def params = []
params += string(name: 'GERRIT_BRANCH', value: env.GERRIT_BRANCH)
+ params += string(name: 'GERRIT_HOST', value: env.GERRIT_HOST)
+ params += string(name: 'GERRIT_CHANGE_NUMBER', value: env.GERRIT_CHANGE_NUMBER)
+ params += string(name: 'GERRIT_PATCHSET_REVISION', value: env.GERRIT_PATCHSET_REVISION)
params += string(name: 'GERRIT_REFSPEC', value: env.GERRIT_REFSPEC)
params += string(name: 'CMSIS_VERSION', value: env.CMSIS_VERSION)
params += string(name: 'MBEDCRYPTO_VERSION', value: env.MBEDCRYPTO_VERSION)
@@ -79,6 +87,7 @@
def buildCsv(results) {
+ def summary = new Summary();
def csvContent = summary.getBuildCsv(results)
node("master") {
writeCSV file: 'build_results.csv', records: csvContent, format: CSVFormat.EXCEL
@@ -87,6 +96,7 @@
}
def writeSummary(results) {
+ def summary = new Summary();
def buildLinks = summary.getLinks(results)
node("master") {
writeFile file: "build_links.html", text: buildLinks
@@ -94,29 +104,6 @@
}
}
-def verifyStatus(value, stage_name) {
- node("docker-amd64-xenial") {
- cleanWs()
- dir("tf-m-ci-scripts") {
- git url: '$CI_SCRIPTS_REPO', branch: 'master', credentialsId: 'GIT_SSH_KEY'
- }
- withCredentials([usernamePassword(credentialsId: 'VERIFY_STATUS', passwordVariable: 'VERIFY_PASSWORD', usernameVariable: 'VERIFY_USER')]) {
- sh("""
- if [ -z "\$GERRIT_HOST" ] ; then
- echo Not running for a Gerrit change, skipping vote.
- exit 0
- fi
- if [ ! -d venv ] ; then
- virtualenv -p \$(which python3) venv
- fi
- . venv/bin/activate
- pip -q install requests
- ./tf-m-ci-scripts/jenkins/verify.py --value ${value} --verify-name tf-m-${stage_name} --user \$VERIFY_USER
- """)
- }
- }
-}
-
def configs = []
def builds = [:]
@@ -148,7 +135,8 @@
verify = -1
} finally {
print("Verifying status")
- verifyStatus(verify, 'build')
+ g = new Gerrit()
+ g.verifyStatus(verify, 'tf-m-build', 'build')
print("Building CSV")
buildCsv(results['builds'])
writeSummary(results['builds'])