1

我在 Jenkins 中有一组参数化构建,我必须单击“立即构建”,然后输入参数值(在本例中称为 GIT_TAG_NAME)。我想触发一组这些参数化构建,它们都使用相同的参数而无需多次输入。

我试图通过构建一个触发所有其他构建的主构建流程来使用构建流程插件(https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin),但我不理解插件语法,或者这可能是不可能的。

我的 DSL 看起来像:

out.println "-------------------------" 
out.println 'Building all OTA builds at tag: '
out.println params["GIT_TAG_NAME"]
out.println "-------------------------"

build( "SomeOTA-Build-1", param1: params["GIT_TAG_NAME"] )
build( "SomeOTA-Build-2", param1: params["GIT_TAG_NAME"] )

print 语句正确打印了参数,但是子构建似乎没有将参数传递给它们。

4

1 回答 1

2

尝试使用参数化触发器插件-

  1. 使用参数设置Job-AGIT_TAG_NAME - 这是您的“前端”

  2. 使用相同的参数设置Job-B1Job-B2Job-B3GIT_TAG_NAME - 那些做实际工作

  3. Job-A设置为在其他项目上触发参数化构建(在Post-build Actions中)
    并将当前构建参数传递给触发的作业
    (每个派生作业需要一个触发器 - 具有相同或不同的条件)


现在,运行Job-A将绑定其他作业,同时将GIT_TAG_NAME.

编辑:TIKAL
有一个使用不同方法的插件:Multijob Plugin试图将所有工作步骤压缩到一个大工作 中(没有尝试过,因此无法评论这种方法)。

如果采用第一种方法,您可能需要查看Join Plugin -
该插件允许在所有直接下游作业结束后运行作业。

于 2012-10-23T08:34:28.983 回答