将 Jenkins 变量传递给 Ruby 脚本



目前我正在尝试回显触发构建的用户的名称

$BUILD_用户_ID

从用户 vars 插件,但从那里我不确定如何将其传递到我的 Ruby 脚本中,我在批处理中执行此操作:

设置 USER= $BUILD_USER_ID

这是我的 Ruby 文件中的内容:

环境['用户']

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

我错过了什么吗?

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

我已经创建了一个 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

最新更新