我有两个流水线工作,我想将上游工作的BUILD_NUMBER
信息发送到下游。
重点是我们不应该触发下游项目。下游项目的触发应该是手动的。
每当我触发下游作业时,它需要获取上游的最新BUILD_NUMBER
。
我该怎么做?
答案 0 :(得分:2)
在第二个作业中使用环境注入插件
正如@VnoC在第一个作业中所提到的那样,在属性文件中编写buildnumber,如下所示
echo "last_build_number = ${BUILD_NUMBER}"> ../Common.properties
在inject enviornement变量中提及secod作业的相同属性文件路径(Path与活动工作区相关,因此将其保存在公共位置)
现在是第二个可以访问变量的工作,比如$ 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
)。