现在看来,在使用Multibranch类型时,项目中的单个位置只能有一个Jenkins文件。
有没有办法配置所以我可以将Jenkins文件放在名称为Jenkinsfile的项目根目录之外的其他地方。有希望,因为有一个固定配置的选项,也许这是一个未来的功能,但我很欣赏这个选项,因为在目前的情况下,我没有选择运行一切作为一个很好的编译管道由于回购的大小。我正在考虑在同一个存储库中拥有多个Jenkins作业。
- 马库斯
答案 0 :(得分:7)
从Pipeline:Multibranch插件版本2.15开始,您可以在配置中指定Jenkinsfile位置。
请参阅我在https://stackoverflow.com/a/45172149/2141666的回答以及https://wiki.jenkins.io/display/JENKINS/Pipeline+Multibranch+Plugin处的插件更改日志。来自更改日志:
2。15(2017年6月1日)
JENKINS-34561选择除Jenkinsfile之外的脚本名称/路径。
答案 1 :(得分:4)
我想我遇到了类似的问题。
您可以做的是将其他“管道”文件存储在其他位置。 这可以在同一个结账地点或不同的结账处。
在此文件中,您可以定义方法,并且必须使用“return this”关闭,以便启动的Jenkinsfile可以使用第二个脚本。 例如:
def initialize(){
wrap([$class: 'BuildUser']) {
env.buildUserName = "$env.BUILD_USER"
env.buildUserId = "$env.BUILD_USER_ID"
env.buildUserEmail = "$env.BUILD_USER_EMAIL"
}
}
// Has to exist with 'return this;' in order to be used as library
return this;
在Jenkinsfile中,您可以执行以下操作:
def steps
node {
steps = load 'MyJenkinsPipelineScript.groovy'
steps.initialize()
}
根据任何环境变量,您可以加载不同的文件。 我希望这会有所帮助。