Jenkins:如何在从另一个项目复制工件时使用用户定义的shell变量

时间:2015-01-12 16:38:12

标签: jenkins

在我的Jenkins配置中,我有一个条件步骤,它导出一个名为“SUFFIX”的自定义shell变量。我想在我复制工件的项目的名称中使用这个变量,但它说:

Unable to find project for artifact copy: myProject${SUFFIX}_release

如何使用这样的变量或实现项目名称取决于作业参数的行为。 job参数是一个布尔值,应该保持一个布尔值。不应该有字符串参数SUFFIX。

此问题是否相关:Being clever when copying artifacts with Jenkins and multi-configurations 我是否需要EnvInject插件才能通过Copying artifacts插件访问变量?

1 个答案:

答案 0 :(得分:1)

Jenkins不会在构建或构建步骤之间保留环境变量更改。这是设计的一部分,以保持构建环境的清洁。

您无法在执行Shell 构建步骤中导出环境变量,然后在复制工件构建步骤中使用它。要解决此问题,您需要EnvInject plugin

  • 您不需要将shell环境变量导出到Environment,而是需要将其写入 - properties文件,格式为param=value
  • 然后,使用EnvInject构建步骤,加载该属性文件
  • 之后,您新加载的环境变量将可用于所有后续构建/构建后步骤,包括复制工件构建步骤。