我正在尝试从另一个作业'B'访问我在作业'A'中定义的环境变量
作业'A'通过-定义它
evn.upload_loaction = "loc"
在作业B中,我试图访问作业A的最后一次成功构建并获取该变量-
def item = Jenkins.instance.getItem("deploy-artifact-pipeline")
def dev_deployed_build=item.getLastSuccessfulBuild()
def envVars= dev_deployed_build.getEnvVars()
echo envVars['upload_loaction'] // prints null
echo envVars['BUILD_NUMBER'] // prints 21
无法识别我的自定义变量,但可以使用诸如build_number之类的通用变量。
当我将作业A触发为下游作业时,我可以使用-
def jLz = build (job: 'deploy-artifact-pipeline')
echo jLz.buildVariables.PROCESSOR_UPLOAD_LOCATION // prints loc
有人可以帮我吗?还是有更好的方法来存储和访问先前版本中的变量?
答案 0 :(得分:0)
EnvInject插件和Pipeline作业不是并行的,如果需要存储一些环境变量,我通常更喜欢将该作业作为自由样式作业,您可以在其中将env变量发送到该作业的末尾版本,可以使用“ injectedEnvVars / api / json”访问特定版本
答案 1 :(得分:0)
我处理的另一种方法是使用所需信息创建工件文件。在另一个Jenkins管道中,我下载了工件文件并读取其中的信息。