Jenkins Workflow Multibranch允许指定Jenkinsfile路径

时间:2016-05-17 09:23:45

标签: jenkins jenkins-plugins jenkins-workflow jenkins-pipeline

现在看来,在使用Multibranch类型时,项目中的单个位置只能有一个Jenkins文件。

有没有办法配置所以我可以将Jenkins文件放在名称为Jenkinsfile的项目根目录之外的其他地方。有希望,因为有一个固定配置的选项,也许这是一个未来的功能,但我很欣赏这个选项,因为在目前的情况下,我没有选择运行一切作为一个很好的编译管道由于回购的大小。我正在考虑在同一个存储库中拥有多个Jenkins作业。

- 马库斯

2 个答案:

答案 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()
}

根据任何环境变量,您可以加载不同的文件。 我希望这会有所帮助。