2014-04-14 42 views
2

我定义我的詹金斯的工作过程是这样:我可以从参数化的Jenkins构建作业中获取参数吗?

"Integration tests" Job >> "Deploy" Job 

每当“集成测试”任务被触发就会触发一个参数“部署”工作。 比方说,我传递参数如:USER_ID来唯一标识我的应用程序。

现在“部署”作业使用此USER_ID参数创建和部署应用程序。 一个典型的应用URL被创建,如:

http://myApplication-userA (assume USER_ID has 'userA' value) 

我要的是这个URL值回我的“集成测试”的工作。我使用参数化插件将值传递给进一步的工作,但是有没有办法通过“部署”作业获取值?

虽然,我知道创建独特应用程序的逻辑是在“部署”作业内,并且可以很好地预测URL。但更清洁的解决方案是获得价值?

回答

0

我还没有见过类似的东西,短暂的临时文件存储在一个互相访问的位置这两个工作。

你可以做的是读取Deploy作业的控制台输出,并解析它,以找出你正在寻找的任何输出。显然,Deploy工作将不得不打印来控制您正在查找的信息。

您可以阅读Deploy作业的控制台输出与http://[HUDSON]/job/[Deploy_JOB_NAME]/lastBuild/logText/progressiveText?start=0

加入/api来,我还没有尝试过任何作业的URL

+0

我会尽量控制台输出解析,也看/ API。感谢您的投入。 – Nilesh

0

一种方法结束了解更多关于它添加新的环境变量[1]。关于它的好处是,环境变量的全局共享状态似乎被认为是必须的,并且是无处不在的。

你是怎么解决它的?安妮

1] https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin

+0

我最终在共享位置使用临时文件:集成作业创建一个具有唯一名称的临时文件。它可以将该文件名或唯一性发送到下一个作业(此处部署作业)。部署作业完成后,使用状态更新文件。 – Nilesh

相关问题