如何将参数传递给下游作业但不应该触发下游作业?

时间:2017-04-27 04:18:08

标签: jenkins

我有两个流水线工作,我想将上游工作的BUILD_NUMBER信息发送到下游。

重点是我们不应该触发下游项目。下游项目的触发应该是手动的。

每当我触发下游作业时,它需要获取上游的最新BUILD_NUMBER

我该怎么做?

2 个答案:

答案 0 :(得分:2)

在第二个作业中使用环境注入插件

正如@VnoC在第一个作业中所提到的那样,在属性文件中编写buildnumber,如下所示

echo "last_build_number = ${BUILD_NUMBER}"> ../Common.properties

在inject enviornement变量中提及secod作业的相同属性文件路径(Path与活动工作区相关,因此将其保存在公共位置)

enter image description here

现在是第二个可以访问变量的工作,比如$ last_build_number

答案 1 :(得分:0)

您可以set an environment variable,然后WithEnv(${last_build_number}) {...}下一个作业将会阅读。{。} 这并不理想,因为它在Top 10 Best Practices for Jenkins Pipeline Plugin

中被列为反模式
  

虽然您可以在env全局变量中编辑某些设置,但您应该使用withEnv语法。

     

为什么呢?因为env变量是全局变量,所以不鼓励直接更改它,因为它会全局更改环境,因此建议使用withEnv语法。

但是,在您的情况下,这可能是一种可接受的解决方法。

environment {
        last_build_number = ${BUILD_NUMBER}
}

我首先考虑将其写入文件中,但是从文件中读取参数的功能仍处于待处理状态(JENKINS-27413)。