我正在运行AWS CodePipeline教程,并且有this step
说我必须创建一个运行bash脚本的jenkins作业,该脚本将连接到EC2实例(不是运行jenkins的实例,而是之前已部署代码的实例)。
据说我必须通过在bash脚本中运行此命令来连接到EC2实例:
TEST_IP_ADDRESS=192.168.0.4 rake test
但我的直觉是说这一步是完全错误的。
此名称没有变量,并且没有选项可以像这样连接到外部实例。
我已成功完成所有步骤,但这一步显然是错误的
答案 0 :(得分:0)
bash脚本将在您的jenkins实例中运行,它将make an HTTP request到您在 TEST_IP_ADDRESS 中配置的实例。
当您添加"构建步骤"并选择"执行shell"时,您将输入以下内容:
TEST_IP_ADDRESS=192.168.0.4 rake test
您正在定义 TEST_IP_ADDRESS 变量,因此您可以给它一个合适的值。
答案 1 :(得分:0)
首先我有同样的困惑,然后我看到了源代码,并且它很容易解释:
#!/usr/bin/env ruby
require 'net/http'
require 'minitest/autorun'
require 'socket'
class JenkinsSampleTest < MiniTest::Unit::TestCase
def setup
uri_params = {
:host => ENV['TEST_IP_ADDRESS'] || 'localhost',
:port => (ENV['TEST_PORT'] || '80').to_i,
:path => '/index.html'
}
@webpage = Net::HTTP.get(URI::HTTP.build(uri_params))
end
def test_congratulations
assert(@webpage =~ /Congratulations/)
end
end