Jenkins + Build Flow,如何将变量从一个作业传递到另一个作业

Unk*_*own 5 linux jenkins jenkins-plugins

我有一个类似于文档示例的构建流程场景:两个作业,一个在另一个之后运行.

b = build("job1")
build("job2", param1: b.????)
Run Code Online (Sandbox Code Playgroud)

job1是一个shell脚本,它从签出的git repositoy构建一个包,并打印出构建包的版本.

我需要从job1(解析输出??)中提取版本并使其以某种方式作为参数提供job2.怎么能实现这一目标?请注意,我在运行之前无法知道该版本job1.

Dav*_*her 9

简单地export在shell脚本构建步骤中使用的问题是,当shell脚本退出时,导出的变量会消失,它们不会传播到作业.

使用EnvInject插件在构建中创建环境变量.如果您在构建过程中写出属性文件,EnvInject可以读取文件并将变量注入构建步骤.属性文件具有简单KEY=VALUE格式:

MY_BUILD_VERSION=some_parsed_value
Run Code Online (Sandbox Code Playgroud)

在作业中设置环境变量后,在Build Flow插件中,您可以提取变量的值并在后续作业中使用它:

def version = build.environment.get( "MY_BUILD_VERSION" )
out.println String.format("Parameters: version: %s", version)
build( "My Second Build", MY_BUILD_VERSION: version )
Run Code Online (Sandbox Code Playgroud)