如何在Jenkins CI中将包含全局环境变量的自定义参数传递给ruby脚本?

时间:2013-09-16 09:04:40

标签: ruby jenkins environment-variables parameter-passing

我在Jenkins中使用字符串参数DEPLOYMENT_ADDRESS配置参数化作业 - 默认值为some / path / $ {SVN_REVISION}。

SVN_REVISION是Jenkins中shell脚本可用的环境变量。

当我调用ruby脚本

ruby file_generator.rb -d $DEPLOYMENT_ADDRESS

在控制台输出中,这看起来像

ruby file_generator.rb -d 'some/path/${SVN_REVISION}'
我的脚本中的

和param值是'some / path / $ {SVN_REVISION}'。但我需要像'some / path / 123'这样的东西。

我做错了什么?

UPDATE>>

代码示例,我解析参数:

require 'optparse'

option_parser = OptionParser.new do |opts|
  executable_name = File.basename($PROGRAM_NAME)
  opts.banner = "Usage: #{executable_name} [options] output_file_name"
    opts.on('-d DEPLOYMENT_ADDRESS', 'The deployment address where the file will reside') do |deployment_address|
        options[:deployment_address] = deployment_address
    end
end

option_parser.parse!

output_file_name = ARGV.shift

puts options[:deployment_address]     # => /some/path/${SVN_REVISION}. But I need somthing like /some/path/123 

1 个答案:

答案 0 :(得分:0)

如果没有必要的示例代码,很难肯定地说,但我猜你用单引号来分隔你的字符串,而不是所需的双引号或不正确的嵌入变量标志。

尝试:

"some/path#{SVN_VERSION}"