我想将旧的自由样式开发版本迁移到工作流程构建中,其中我们使用分支名称作为构建参数。 到目前为止这个工作正常,我们唯一真正缺少的是能够使用参数,例如“branch_name”,作为来自SCM 部分的工作流脚本的分支说明符。 在自由风格的构建上,这很好用。 任何想法如何实现这一目标?我们不希望开发人员在开始构建之前始终更改配置。
答案 0 :(得分:22)
答案 1 :(得分:2)
听起来像JENKINS-28447:
为worflow作业选择“来自SCM的Groovy CPS DSL”选项时, SCM插件似乎不解析构建参数或 环境变量。我正在使用git插件,当我使用它时 从其他工作我可以指定一个构建参数,如“BuildBranch”, 并在指定应该构建哪个分支时使用它
解决方法是使用在结帐后调用load
的内联引导脚本,如教程中所述。
答案 2 :(得分: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}"
}
答案 3 :(得分:-1)
或者,进一步创建一个多分支工作流项目,以便每个分支都自动构建,并具有自己的历史记录。