首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何链接手动触发的下游作业,同时传递参数?

如何链接手动触发的下游作业,同时传递参数?
EN

Stack Overflow用户
提问于 2012-08-16 09:00:32
回答 5查看 28.1K关注 0票数 13

我正在使用Jenkins创建一个构建管道,并且需要在这个管道中触发一个部署步骤。这意味着手动过程(构建会自动发生、计时,然后在部署阶段停止,等待手动授权)。

我需要使用前一步中的参数触发部署步骤。

因此,使用“参数化插件”,我可以在作业之间传递参数。我可以触发自动或手动触发下游作业(不确定这是否是一个标准特性,或者手动构建是由某个插件添加的)。

但是,我无法找到触发手动参数化作业的任何方法。

有人知道怎么做吗?还有别的插件我可以用吗?

我需要这些参数的原因是,我已经创建了一个通用部署作业,需要传入模块名和要部署的maven版本。我可以为每个模块创建特定的部署作业,但这将是非常痛苦的。

我也一直在考虑以下几点,但这似乎是一种套话:

  1. 自动化作业执行生成,触发“部署触发器”生成,传递参数。
  2. “部署触发器”将这些参数写入文件系统上的文件(构建步骤- shell执行),并手动触发实际的部署作业。
  3. 部署作业(必须使用“部署触发器”作业中的工作区)从文件系统(使用EnvInject插件)读取参数。

这种方法有各种各样的问题。

  1. 我只是不喜欢。
  2. 有一个中间作业,只是为了传递参数。这扰乱了Jenkins的工作空间
  3. 由于构建是在同一个工作区上执行的,所以在我看来很脆弱(虽然是可行的!)
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-03-28 07:36:05

当前生产版本(1.4.2)的构建-管道-插件允许它-指定手动下游作业的参数,这是显示在管道上,可以从那里启动。老版本做不到。

票数 7
EN

Stack Overflow用户

发布于 2012-09-20 20:51:02

看看构建管道插件https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin

可以指定要自动触发的作业或手动触发的作业。

此外,如果需要在作业之间传递参数,则需要下载Groovy插件https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin

为了传递参数,比如在作业之间进行SVN修订,您需要在构建开始时执行System脚本。这是一个示例,它将添加一个可供任何下游作业使用的SVN_UPSTREAM参数。注意:我注意到,在创建具有系统groovy脚本的下游作业时,出现了问题。它似乎消除了对所创建的原始参数的引用。

代码语言:javascript
复制
import hudson.model.*
def build = Thread.currentThread().executable;
build.addAction(new ParametersAction(new StringParameterValue("SVN_UPSTREAM", build.getEnvVars()['SVN_REVISION'])));
println "SVN_UPSTREAM:" + build.getEnvVars()['SVN_UPSTREAM'];
票数 2
EN

Stack Overflow用户

发布于 2014-03-26 14:24:49

有一种解决办法:

  • 安装手册升级(在.>仅在人工批准的情况下)在上游作业
  • 在升级中指定添加操作>触发器参数化构建在其他项目上,指定作业和添加参数

一旦您手动提升特定的上游作业生成,它将触发下游作业的生成。但下游作业不会出现在管道上。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11983796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档