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
pull/15/head
George Joseph 6 years ago
parent 53c9e7962f
commit be6130607d

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

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

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

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

Loading…
Cancel
Save