私はjobDSLでmultibranchPipelineJobを作成しようとしていますが、Jenkinsfileはデフォルトとは別の場所にあります。私はドキュメントを調べました https://jenkinsci.github.io/job-dsl-plugin/#path/multibranchPipelineJob これを行う方法がわかりません。手動で作成したmultibranchPipelineJobのconfig.xmlを見ると、scriptPathがセクションにありますが、これを設定するDSLメソッドが見つかりません。
誰でもこれを行う方法について何か助けを提供できますか?乾杯
Job DSLはこれを行う方法を公開します:
multibranchPipelineJob('my-build') {
factory {
workflowBranchProjectFactory {
scriptPath('path-to-Jenkinsfile')
}
}
}
Job DSL 1.69での動作を確認しました。リリースノートによれば、1.67以降で利用可能です。
かなりの量のググリングの後、私はうまくいくものを見つけました:
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")
}
}
これでうまくいくようです。
設定は少し隠されていますが、 自動生成されたDSL は、マルチブランチジョブのスクリプトパスの設定をサポートします。
multibranchPipelineJob('example') {
factory {
workflowMultiBranchProjectFactory {
scriptPath('my-location/Jenkinsfile')
}
}
}