将Jenkins变量传递给Ruby脚本

时间:2018-10-25 16:00:36

标签: ruby jenkins cucumber jenkins-cli

当前,我正在尝试回显使用

触发构建的用户名
  

$ BUILD_USER_ID

来自用户vars插件,但是从那里我不确定如何将其传递到我的ruby脚本中,我以批处理命令完成了此操作:

  

set USER = $ BUILD_USER_ID

这就是我的红宝石文件中的内容:

  

ENV ['USER']

但是它返回一堆奇怪的字母,我猜这是我用来运行作业的从属节点中的用户名。

有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

您可以将插件与envinject插件结合使用,以在Jenkins作业中注入环境变量。

我创建了一个詹金斯工作并安装了两个插件。我已经勾选了“设置jenkins用户构建变量”。 我还勾选了:“将环境变量注入到构建过程中”,并在“属性内容”中进行定义:

USER = $BUILD_USER_ID

这将创建一个新的环境变量USER,其中包含变量BUILD_USER_ID(由用户env插件创建)的内容。

要测试:

我创建了一个file.rb,其中包含我的ruby代码以打印环境变量(仅在shell中)。

# write script
echo "#!/usr/bin/env ruby" > file.rb
echo "# Print some variables" >> file.rb
echo "puts ENV['BUILD_USER_ID']" >> file.rb

# execute script
ruby file.rb

输出:

[EnvInject] - Injecting as environment variables the properties content 
USER=$BUILD_USER_ID

[EnvInject] - Variables injected successfully.
[test] $ /bin/sh -xe /tmp/jenkins3544234152865572985.sh
+ echo #!/usr/bin/env ruby
+ echo # Print some variables
+ echo puts ENV['USER']
+ ruby file.rb
admin
Finished: SUCCESS