如何在Jenkins/Hudson中以编程方式设置环境变量?

15

我有一个Jenkins工作任务中的两个预构建步骤脚本,第一个是perl脚本,第二个是使用groovy插件的系统groovy脚本。我需要在第二个groovy脚本中使用第一个perl脚本的信息。我认为最好的方法是设定一些环境变量,并想知道如何实现。

或者还有其他更好的方法。

感谢您的时间。


这个问题涉及到项目特定的环境变量,但是对于全局环境变量,请参见此答案 - Parker
2个回答

14
传递构建步骤之间的环境变量的方法是通过EnvInject插件

以下是一些以前的答案,展示如何执行此操作:

然而,在您的情况下,更简单的方法可能只需在一个构建步骤中写入文件并在另一个构建步骤中读取该文件。为了确保不会意外地从先前版本的文件中读取,您可以将BUILD_ID合并到文件名中。


工作区对于每个构建都是独立的,因此无需添加“build_id”。如果您添加了“build_id”,最终会产生大量文件。最好的方法是,如果存在旧文件,则直接删除它(或者简单地覆盖它)。 - Nux
这真的取决于您的使用情况。如果您想保留文件内容以供以后使用,则需要在文件名中添加构建ID。如果您只使用最新的构建信息,那么您可以随时替换它。 - Luis Elizondo

3
使用EnvInject插件,你可以在作业配置中使用注入环境变量到构建过程 / Groovy脚本求值。根据设置,您可以执行Groovyshell命令,并将其保存在包含环境变量的映射中:

示例

通过使用execute方法获取命令结果:

return [DATE: 'date'.execute().text]

或者如果存在 Groovy 相应的代码,则使用该代码:
return [DATE: new Date()]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接