Issue
-
When a new GitHub Organization job is created, all repos are scanned and builds are triggered right away. Is there any way to prevent these automatic builds?
-
I want to control whether a stage should be executed or not based on the triggered events.
Environment
-
CloudBees CI (CloudBees Core) on modern cloud platforms - Managed controller
-
CloudBees CI (CloudBees Core) on traditional platforms - Client controller
-
CloudBees Jenkins Enterprise
-
CloudBees Jenkins Enterprise - Managed controller
Resolution
The best way is to install Branch API 2.3.0 and Basic Branch Build Strategies 1.3.0. A new option is added to skip initial build on branch indexing:
If you can’t install the plugins for some reason, go to the GitHub Org configuration, clear the field Branch names to build automatically.
After saving the job, you can add .* to re-enable builds.
Workaround
You can also control when a stage should be executed. In the following example, the deployment stage is skipped unless the build is triggered by a GitHub push event.
pipeline {
agent none
stages {
stage('Example Build') {
steps {
echo 'Hello World'
}
}
stage('Example Deploy') {
when {
expression {
currentBuild.buildCauses.toString().contains("Push event to branch")
}
}
steps {
echo 'Deploying'
}
}
}
}
Tested product/plugin versions
-
Branch API 2.3.0
-
Basic Branch Build Strategies 1.3.0
-
GitHub Branch Source 2.4.1