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
This commit is contained in:
George Joseph
2019-08-08 06:12:18 -06:00
parent 6d174e4ef2
commit 17908cb76e
4 changed files with 19 additions and 10 deletions

View File

@@ -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 ]],

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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 ]],