apr*_*985 9 jenkins jenkins-job-dsl jenkins-pipeline multibranch-pipeline
我正在尝试在jobDSL中创建multibranchPipelineJob,但Jenkins文件位于默认的替代位置.我查看了文档https://jenkinsci.github.io/job-dsl-plugin/#path/multibranchPipelineJob ,我看不到这样做的方法.查看config.xml以获取手动创建的multibranchPipelineJob,scriptPath位于该部分中,但我找不到设置此方法的DSL方法.
谁能提供任何帮助,如何做到这一点?干杯
ner*_*erd 14
Job DSL现在提供了一种方法:
multibranchPipelineJob('my-build') {
factory {
workflowBranchProjectFactory {
scriptPath('path-to-Jenkinsfile')
}
}
}
Run Code Online (Sandbox Code Playgroud)
确认使用Job DSL 1.69,根据发行说明,自1.67起可用.
由于这个问题仍然很受欢迎,要在 JCasC 中执行此操作,您可以执行此操作
jobs:
- script: >
folder('common');
multibranchPipelineJob('common/jcasc-deploy') {
factory {
workflowBranchProjectFactory {
scriptPath('Jenkinsfile')
}
}
branchSources {
branchSource {
source {
gitSCMSource {
remote('git@gitlab.com:PROJECT/REPO.git')
credentialsId('gitlab-key')
id('jcasc-deploy')
}
}
buildStrategies {
buildAllBranches {
strategies {
skipInitialBuildOnFirstBranchIndexing()
}
}
}
}
}
triggers {
periodicFolderTrigger {
interval('1440')
}
}
configure { node ->
node / sources / data / 'jenkins.branch.BranchSource' / source / traits {
'jenkins.plugins.git.traits.BranchDiscoveryTrait'()
}
}
}
Run Code Online (Sandbox Code Playgroud)
经过大量的谷歌搜索,我发现了一些有用的东西:
configure {
it / factory(class: 'org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory') {
owner(class: 'org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject', reference: '../..')
scriptPath("jenkins/[where ever you want]/Jenkinsfile")
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎对我有用。