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.
现在看来,当使用多分支类型时,您只能在项目的一个位置拥有一个 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 位置。
在
2.15 (Jun 01, 2017)
JENKINS-34561 Option to select a script name/path other than Jenkinsfile.