dg 0.6.8 → 0.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dg +1 -0
  3. data/lib/dg/docker.rb +41 -1
  4. data/lib/dg/version.rb +1 -1
  5. metadata +3 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b35cc050a3013187d37730d398231ba90ce15e9
4
- data.tar.gz: 92e6106028643b774fb3e549c371efca59f206da
3
+ metadata.gz: 572a4dc3be951d166de234fd2b39905a52b4798e
4
+ data.tar.gz: 7ca389522188b50219cd79ac4a064c0b594917cb
5
5
  SHA512:
6
- metadata.gz: 7d6d51adb37e51cdab5ec6b23e091afdec0612c21e4c8aac316e47d85b0830083c386316bb68f42105164dc4add167efdc5d19560d06c12de92ebcc8b6ef9ac2
7
- data.tar.gz: 387d36794cde4159a9763f29f5ec8b5d753e4017afa54be74319676f0853aa5237f4f390ddd13c06d331ffc4dc95aad3d1a2e6371f9d4a9eb6e36bd08138b42e
6
+ metadata.gz: 9f736a37b425aa75754410a254cee1afe4042641e34225bba3b82bde981f4681bc36e46b48976ac04d0f6c6617d69064b00eb63242036043ebe6552221a3b139
7
+ data.tar.gz: 2ca1c35c3123c35cfb528697d15f1417a13ced7c75669f15361d8006f2f437c224892e8bbe2c47d8382e6b2cb6eb37627f0de80223f0403f29049fd49c1357af
data/bin/dg CHANGED
@@ -10,6 +10,7 @@ COMMANDS = %w(
10
10
  build
11
11
  debug
12
12
  deploy
13
+ deploy_check
13
14
  help
14
15
  purge
15
16
  push
data/lib/dg/docker.rb CHANGED
@@ -40,6 +40,22 @@ module DG
40
40
  run_with_output("docker push #{latest_image_name}")
41
41
  end
42
42
 
43
+ def deploy_check
44
+ required_envs = %w(GO_HOST GO_USER GO_PWD)
45
+ unless required_envs.reduce{ |acc, e| acc && ENV[e] }
46
+ error!(
47
+ RuntimeError.new("Environment variables {#{required_envs.join(', ')}} must be set"),
48
+ 'checking if pipeline exists'
49
+ )
50
+ end
51
+
52
+ puts "Checking existance of pipeline docker-#{project_name}-{#{deploy_stages.join('|')}}"
53
+
54
+ deploy_stages.each do |deploy_stage|
55
+ pipeline_check(project_name, deploy_stage)
56
+ end
57
+ end
58
+
43
59
  def deploy
44
60
  required_envs = %w(GO_HOST GO_USER GO_PWD)
45
61
  unless required_envs.reduce{ |acc, e| acc && ENV[e] }
@@ -64,7 +80,7 @@ module DG
64
80
  `git symbolic-ref --short -q HEAD`.strip
65
81
 
66
82
  run_with_output(
67
- %(docker run --entrypoint=ruby -e GIT_BRANCH=$GIT_BRANCH #{git_image_name} /u/app/deploy-to.rb), capture = true
83
+ %(docker run --entrypoint=ruby -e GIT_BRANCH=#{branch} #{git_image_name} /u/app/deploy-to.rb), capture = true
68
84
  ).strip.split(',')
69
85
  end
70
86
  end
@@ -208,6 +224,30 @@ module DG
208
224
  puts "docker run -it --entrypoint=/bin/bash #{git_image_name}"
209
225
  end
210
226
 
227
+ def pipeline_check(project_name, deploy_stage)
228
+ pipeline_name = "docker-#{project_name}-#{deploy_stage}"
229
+ uri = URI("https://#{ENV['GO_HOST']}/go/api/pipelines/#{pipeline_name}/status")
230
+ request = Net::HTTP::Get.new(uri.path)
231
+ request.basic_auth ENV['GO_USER'], ENV['GO_PWD']
232
+
233
+ response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
234
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
235
+ http.ssl_version = :SSLv3
236
+ http.request(request)
237
+ end
238
+
239
+ if response.code.to_i == 200
240
+ puts "Pipeline [#{pipeline_name}] exists"
241
+ else
242
+ error!(
243
+ RuntimeError.new(
244
+ "response code was #{response.code}: #{response.body.strip}"
245
+ ),
246
+ "checking pipeline status for [#{pipeline_name}]"
247
+ )
248
+ end
249
+ end
250
+
211
251
  def schedule_pipeline(project_name, deploy_stage, image_id)
212
252
  pipeline_name = "docker-#{project_name}-#{deploy_stage}"
213
253
  puts "Triggering pipeline: #{pipeline_name} on #{ENV['GO_HOST']}"
data/lib/dg/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module DG
2
- VERSION = '0.6.8'
2
+ VERSION = '0.6.9'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.8
4
+ version: 0.6.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Malet
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-18 00:00:00.000000000 Z
11
+ date: 2016-02-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |
14
14
  DockerGo (DG)
@@ -56,9 +56,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  version: '0'
57
57
  requirements: []
58
58
  rubyforge_project:
59
- rubygems_version: 2.2.2
59
+ rubygems_version: 2.4.6
60
60
  signing_key:
61
61
  specification_version: 4
62
62
  summary: Provides integration between Docker and GoCD.
63
63
  test_files: []
64
- has_rdoc: