【发布时间】:2020-01-30 13:36:41
【问题描述】:
我在 Jenkins 中有一个多分支管道。我想将我的脚本文件(jenkinsfile)作为 svn 文件包含在我的开发分支中,以便为所有分支集中组织脚本。不幸的是,多分支管道的扫描无法找到脚本文件,因为它只查看声明的分支内部,而不是包含的 svn 外部位置。 有谁知道我该如何解决这个问题?
以下是我的 svn 结构、作业配置和更多信息的示例。
SVN:
root/
scripts/
jenkinsfile
code/
version1/
branchX/
...
version11/
branchY/
...
branchX、branchY 等的 SVN 外部属性
Local path: jenkinsfile
URL: ^/scripts/jenkinsfile
Revision Peg: 12345
多分支作业配置:
Subversion
Project Repository Base: http://.../root/code/
Include branches: version1/branchX, version11/branchY
Build configuration
Mode: by Jenkinsfile
Script path: jenkinsfile
多分支管道中的扫描日志消息:
...
Checking candidate branch /code/version1/branchX@HEAD
‘jenkinsfile’ not found
Does not meet criteria
...
我已经尝试根据以下建议禁用 subversion scm 插件的轻量级签出:
Multibranch pipeline with jenkinsfile in svn:external
(我在 jenkins.xml 的<service><arguments>... 下添加了-Djenkins.scm.impl.subversion.SubversionSCMFileSystem.disable=true)
但是 jenkins 仍然无法找到脚本。事实上,如果我将我的脚本直接放在例如branchX 禁用的轻量级签出导致对我的工作区进行双重签出(第一个读取脚本文件,第二个读取脚本本身的第一个阶段)。
也许我的整个设置也是错误的,或者不是理想的做法?
我会很高兴您的帮助和提示。谢谢和问候!
【问题讨论】:
标签: jenkins svn jenkins-pipeline multibranch-pipeline