Jenkins multibranch pipeline Scan without execution
In your Branch Sources section you can add a Property named Suppress automatic SCM triggering.
This prevents Jenkins from building everything with an Jenkinsfile
.
Also, you can do it programatically
import jenkins.branch.*import jenkins.model.Jenkinsfor (f in Jenkins.instance.getAllItems(jenkins.branch.MultiBranchProject.class)) { if (f.parent instanceof jenkins.branch.OrganizationFolder) { continue; } for (s in f.sources) { def prop = new jenkins.branch.NoTriggerBranchProperty(); def propList = [prop] as jenkins.branch.BranchProperty[]; def strategy = new jenkins.branch.DefaultBranchPropertyStrategy(propList); s.setStrategy(strategy); } f.computation.run()}
This is a Groovy snippet you can execute in Jenkins, it's gonna do the scanning but will not start new "builds" for all discovered branches.
To add to @Stqs's answer, you could also set noTriggerBranchProperty
it using Job DSL plugin, e.g.:
multibranchPipelineJob('example') { ... branchSources { branchSource { ... strategy { defaultBranchPropertyStrategy { props { // Suppresses the normal SCM commit trigger coming from branch indexing noTriggerBranchProperty() ... } } } } } ...}