Jenkins工作流作业:使用参数作为分支说明符

问题描述 投票:9回答:4

我想将旧的自由样式开发版本迁移到工作流程构建中,其中我们使用分支名称作为构建参数。到目前为止这个工作正常,我们唯一真正缺少的是能够使用参数,例如“branch_name”,作为SCM部分的Workflow脚本的分支说明符。在自由风格的构建上,这很好用。任何想法如何实现这一目标?我们不希望开发人员在开始构建之前始终更改配置。

jenkins jenkins-workflow
4个回答
2
投票

听起来像JENKINS-28447

当为worflow作业选择“来自SCM的Groovy CPS DSL”选项时,SCM插件似乎不会解析构建参数或环境变量。我正在使用git插件,当我从其他作业中使用它时,我可以指定一个构建参数,比如“BuildBranch”,并在指定应该构建哪个分支时使用它

解决方法是使用在结帐后调用load的内联引导脚本,如教程中所述。


22
投票

尝试禁用“轻量级结帐”复选框。

Lightweight checkout screenshot

发现在JENKINS-28447的最新评论中


0
投票

我有一个工作流DSL脚本在这里描述:https://groups.google.com/forum/#!msg/jenkinsci-users/jSKwSKbaXq8/dG2mn6iyDQAJ

在该脚本中,我有一个名为FREEBSD_SRC_URL的构建参数,该参数传递给工作流。根据该URL中的不同参数,可以检出不同的分支。

如果你正在使用git,你仍然可以使用相同的技术将构建参数传递给脚本,但是你需要做的事情略有不同。例如,您可以在作业中定义参数BRANCH_NAME,并在工作流脚本中执行以下操作:

String checkout_url = "https://github.com/jenkinsci/jenkins"
String branch_name = "master"

if (getBinding().hasVariable("CHECKOUT_URL")) {
    // override default URL from build parameter
    checkout_url = CHECKOUT_URL
}
if (getBinding().hasVariable("BRANCH_NAME")) {
    // override default branch from build parameter
    branch_name = BRANCH_NAME
}

node {
    // Do the git checkout
    git branch: "${branch_name}", url: "${checkout_url}"
}

-1
投票

或者,进一步创建一个多分支工作流项目,以便使用自己的历史记录自动构建每个分支。

© www.soinside.com 2019 - 2024. All rights reserved.