Last active
November 24, 2021 04:47
-
-
Save djfdyuruiry/e3c891c6204bea602e770f9bf7a0cb1c to your computer and use it in GitHub Desktop.
Jenkins Job DSL for a Multi-Branch Pipeline that includes Branch Source Strategy & custom Jenkinsfile script path
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// A new UUID must be generated for the first run and re-used for your Job DSL, the plugin updates jobs based on ID | |
UUID uuid = UUID.fromString("dd847135-8391-4f66-a54c-7f8781dc3119") // generate one @ https://www.uuidgenerator.net | |
multibranchPipelineJob("my_awesome_job") { | |
displayName "my awesome job" | |
description "multi-branch pipeline job thingy" | |
configure { | |
it / sources / 'data' / 'jenkins.branch.BranchSource' << { | |
source(class: 'jenkins.plugins.git.GitSCMSource') { | |
id(uuid) | |
remote("git@gitlab:root/repo.git") | |
credentialsId("ssh_key") | |
includes('*') | |
excludes('') | |
ignoreOnPushNotifications('false') | |
traits { | |
'jenkins.plugins.git.traits.BranchDiscoveryTrait'() | |
} | |
} | |
// default strategy when sourcing from a branch | |
strategy(class: "jenkins.branch.NamedExceptionsBranchPropertyStrategy") { | |
defaultProperties(class: "java.util.Arrays\$ArrayList") { | |
a(class: "jenkins.branch.BranchProperty-array") { | |
// don't trigger builds | |
"jenkins.branch.NoTriggerBranchProperty"() | |
} | |
} | |
// exceptions to the default strategy | |
namedExceptions(class: "java.util.Arrays\$ArrayList") { | |
a(class: "jenkins.branch.NamedExceptionsBranchPropertyStrategy\$Named-array") { | |
"jenkins.branch.NamedExceptionsBranchPropertyStrategy_-Named"() { | |
// for the brach named `master` trigger builds | |
// (this is default behaviour if no branch properties are specified) | |
props(class: "empty-list") | |
name("master") | |
} | |
} | |
} | |
} | |
} | |
// customise the branch project factory | |
it / factory(class: "org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory") << { | |
// pipeline jobs will have their script path set to `pipelines/customPipeline.groovy` | |
scriptPath("pipelines/customPipeline.groovy") | |
} | |
} | |
} |
where is section for scriptPath
to your Jenkinsfile
?
where is section for scriptPath to your Jenkinsfile?
I would like to know how to give Jenkinsfile option. Please help.
where is section for scriptPath to your Jenkinsfile?
I would like to know how to give Jenkinsfile option. Please help.
@coolguy7779 have a look: https://stackoverflow.com/questions/48284589/jenkins-jobdsl-multibranchpipelinejob-change-script-path
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@mjungsbluth Good spot, corrected with comment!