使用jenkins的AWS CodePipeline高级教程

时间:2015-10-23 23:17:46

标签: amazon-web-services jenkins aws-code-deploy aws-codepipeline

我正在运行AWS CodePipeline教程,并且有this step

说我必须创建一个运行bash脚本的jenkins作业,该脚本将连接到EC2实例(不是运行jenkins的实例,而是之前已部署代码的实例)。

据说我必须通过在bash脚本中运行此命令来连接到EC2实例:

TEST_IP_ADDRESS=192.168.0.4 rake test

但我的直觉是说这一步是完全错误的。

此名称没有变量,并且没有选项可以像这样连接到外部实例。

我已成功完成所有步骤,但这一步显然是错误的

2 个答案:

答案 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