Jenkins Workflow Multibranch 允许指定 Jenkinsfile 路径

Jenkins Workflow Multibranch allow for specifying Jenkinsfile path

现在看来,当使用多分支类型时,您只能在项目的一个位置拥有一个 Jenkinsfile。

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

-- 马库斯

我想我 运行 遇到了类似的问题。

您可以做的是在其他地方存储一个不同的 "pipeline" 文件。 这可以在同一个结账地点或不同的结账地点。

在此文件中,您可以定义方法,并且必须使用 "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()
}

基于任何环境变量,您可以加载不同的文件。 希望对您有所帮助。

从 Pipeline: Multibranch 插件版本 2.15 开始,您可以在配置中指定 Jenkinsfile 位置。

and the plugin changelog at https://wiki.jenkins.io/display/JENKINS/Pipeline+Multibranch+Plugin 查看我的回答。来自更新日志:

2.15 (Jun 01, 2017)

JENKINS-34561 Option to select a script name/path other than Jenkinsfile.