From aa44e723c56f65b363955f5c945b9be97ed545cc Mon Sep 17 00:00:00 2001 From: George Joseph Date: Thu, 8 Aug 2019 06:12:18 -0600 Subject: [PATCH] CI: Add "throttle" label and "skip_gate" capability To make throttling by label fully active, the "throttle" option has to be specified with a specific label. You can now specify "skip_gate" in the Gerrit comments when you do a +2 code review to tell Jenkins not to actually run the gate. You'd do this if you plan to manually merge the change. Also updated the "printenv" debug output to better sort multi-line comments. Change-Id: I4c0b1085acec4805f2ca207eebac50aad81f27e2 --- tests/CI/gates.jenkinsfile | 17 ++++++++++------- tests/CI/periodics-daily.jenkinsfile | 4 +++- tests/CI/ref_debug.jenkinsfile | 4 +++- tests/CI/unittests.jenkinsfile | 4 +++- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/tests/CI/gates.jenkinsfile b/tests/CI/gates.jenkinsfile index 359dbbe258..219abb0cc6 100644 --- a/tests/CI/gates.jenkinsfile +++ b/tests/CI/gates.jenkinsfile @@ -20,6 +20,8 @@ if (env.TIMEOUT_GATES) { pipeline { options { + ansiColor('gnome-terminal') + throttle(['asterisk-gate']) timestamps() timeout(time: timeoutTime, unit: timeoutUnits) } @@ -62,14 +64,15 @@ pipeline { stages { stage ("->") { - /* - * Jenkins will try to automatically rebuild this job when - * the jenkinsfile changes but since this job is dependent on - * Gerrit, we really don't want to do anything in that case. - */ when { + /* + * Jenkins will try to automatically rebuild this job when + * the jenkinsfile changes but since this job is dependent on + * Gerrit, we really don't want to do anything in that case. + */ not { environment name: 'GERRIT_CHANGE_NUMBER', value: '' } - not { environment name: 'GERRIT_EVENT_ACCOUNT_NAME', value: 'Jenkins2' } + /* If "skip_gate" is in the comments, don't run the job */ + not { expression { env.GERRIT_EVENT_COMMENT_TEXT ==~ /.*skip_gate.*/ } } } steps { /* Here's where we switch to scripted pipeline */ @@ -97,7 +100,7 @@ pipeline { withCredentials([usernamePassword(credentialsId: "${JENKINS_GERRIT_CREDS}", passwordVariable: 'GERRIT_USER_PW', usernameVariable: 'GERRIT_USER_NAME')]) { - sh "printenv | sort" + sh "printenv -0 | sort -z | tr '\0' '\n'" checkout scm: [$class: 'GitSCM', branches: [[name: env.GERRIT_BRANCH ]], diff --git a/tests/CI/periodics-daily.jenkinsfile b/tests/CI/periodics-daily.jenkinsfile index c91c5e55c5..ce10209fb7 100644 --- a/tests/CI/periodics-daily.jenkinsfile +++ b/tests/CI/periodics-daily.jenkinsfile @@ -20,6 +20,8 @@ if (env.TIMEOUT_DAILIES) { pipeline { options { + ansiColor('gnome-terminal') + throttle(['asterisk-daily']) timestamps() timeout(time: timeoutTime, unit: timeoutUnits) } @@ -41,7 +43,7 @@ pipeline { stage ("Checkout") { sh "sudo chown -R jenkins:users ." - sh "printenv | sort" + sh "printenv -0 | sort -z | tr '\0' '\n'" sh "sudo tests/CI/setupJenkinsEnvironment.sh" } diff --git a/tests/CI/ref_debug.jenkinsfile b/tests/CI/ref_debug.jenkinsfile index 0d1e522f1a..5c4f4873fe 100644 --- a/tests/CI/ref_debug.jenkinsfile +++ b/tests/CI/ref_debug.jenkinsfile @@ -20,6 +20,8 @@ if (env.TIMEOUT_REF_DEBUG) { pipeline { options { + ansiColor('gnome-terminal') + throttle(['asterisk-ref-debug']) timestamps() timeout(time: timeoutTime, unit: timeoutUnits) } @@ -41,7 +43,7 @@ pipeline { stage ("Checkout") { sh "sudo chown -R jenkins:users ." - sh "printenv | sort" + sh "printenv -0 | sort -z | tr '\0' '\n'" sh "sudo tests/CI/setupJenkinsEnvironment.sh" } diff --git a/tests/CI/unittests.jenkinsfile b/tests/CI/unittests.jenkinsfile index 97d18a865a..7a5cd4ad6d 100644 --- a/tests/CI/unittests.jenkinsfile +++ b/tests/CI/unittests.jenkinsfile @@ -20,6 +20,8 @@ if (env.TIMEOUT_UNITTESTS) { pipeline { options { + ansiColor('gnome-terminal') + throttle(['asterisk-check']) timestamps() timeout(time: timeoutTime, unit: timeoutUnits) } @@ -98,7 +100,7 @@ pipeline { withCredentials([usernamePassword(credentialsId: "${JENKINS_GERRIT_CREDS}", passwordVariable: 'GERRIT_USER_PW', usernameVariable: 'GERRIT_USER_NAME')]) { - sh "printenv | sort" + sh "printenv -0 | sort -z | tr '\0' '\n'" checkout scm: [$class: 'GitSCM', branches: [[name: env.GERRIT_BRANCH ]],