From 2b214600a43f316072ce706783bc8940f458ede2 Mon Sep 17 00:00:00 2001 From: Zach Dworkin Date: Fri, 11 Oct 2024 10:08:51 -0700 Subject: [PATCH] contrib/intel/jenkins: Add github build status updates throughout pipeline. Let the Jenkinspipeline provide better updates about the current running status of the build. Signed-off-by: Zach Dworkin --- contrib/intel/jenkins/Jenkinsfile | 37 +++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/contrib/intel/jenkins/Jenkinsfile b/contrib/intel/jenkins/Jenkinsfile index 30e0089c3d1..7ef5bd0f1af 100644 --- a/contrib/intel/jenkins/Jenkinsfile +++ b/contrib/intel/jenkins/Jenkinsfile @@ -8,6 +8,30 @@ properties([disableConcurrentBuilds(abortPrevious: true)]) @Field def PYTHON_VERSION="3.9" @Field def TIMEOUT="7200" +def setBuildStatus(String message, String state) { + if (!env.CHANGE_URL.toBoolean()) { + echo "No change URL found. Skipping status update." + return + } + step([ + $class: "GitHubCommitStatusSetter", + reposSource: [ + $class: "ManuallyEnteredRepositorySource", url: env.CHANGE_URL + ], + contextSource: [ + $class: "ManuallyEnteredCommitContextSource", + context: "continuous-integration/intel/jenkins" + ], + errorHandlers: [ + [$class: "ChangingBuildStatusErrorHandler", result: "UNSTABLE"] + ], + statusResultSource: [ + $class: "ConditionalStatusResultSource", + results: [[$class: "AnyBuildResult", message: message, state: state]] + ] + ]); +} + def run_python(version, command, output=null) { if (output != null) sh "python$version $command >> $output" @@ -369,6 +393,7 @@ pipeline { stage ('checkout') { steps { script { + setGitHubStatus("Pending", "PENDING") dir ("${CUSTOM_WORKSPACE}/source/libfabric") { checkout scm } @@ -438,6 +463,7 @@ pipeline { stage ('build-ci') { steps { script { + setGitHubStatus("Building", "BUILDING") build_ci() } } @@ -559,6 +585,7 @@ pipeline { stage ('CI_mpi_verbs-rxm_imb') { steps { script { + setGitHubStatus("Testing", "TESTING") dir (CI_LOCATION) { run_ci("CI_mpi_verbs-rxm_imb", "pr_imb_water.json") } @@ -900,6 +927,7 @@ pipeline { when { equals expected: true, actual: DO_RUN } steps { script { + setGitHubStatus("Summarizing", "SUMMARIZING") gather_logs("${env.DAOS_ADDR}", "${env.DAOS_KEY}", "${env.LOG_DIR}", "${env.LOG_DIR}") gather_logs("${env.ZE_ADDR}", "${env.ZE_KEY}", "${env.LOG_DIR}", @@ -927,7 +955,15 @@ pipeline { } } } + failure { + script { + setGitHubStatus("Build failed", "FAILED") + } + } aborted { + script { + setGitHubStatus("Build aborted", "ABORTED") + } node ('daos_head') { dir ("${DELETE_LOCATION}/middlewares") { deleteDir() } } @@ -938,6 +974,7 @@ pipeline { } success { script { + setGitHubStatus("Build succeeded", "SUCCESS") if (DO_RUN) { CI_summarize(verbose=true) summarize("all", verbose=true, release=false,