dctl_rb 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3934427beaf11b1a77bf3d3c7eee40df99af3875e91862810d7b722956d7f12d
4
- data.tar.gz: ec0e64e8db1ba461406d3f7b70c72d74523a6d259252350227058b05cc3ac9b4
3
+ metadata.gz: 28105f390bb987564e1c3be9127f5fd61df209ec25f0f3d01240e34b12498f45
4
+ data.tar.gz: ce077043133ac33822b72566d03712dcedbafe04d260c27c2689902103d0ce66
5
5
  SHA512:
6
- metadata.gz: be5ca89fd24dbf67d148a54a3753f059b44e9da45a4fd624532a7623e47c761cd775d68e4929ffcfeee9a7801de098d16d70320f2a263c43c2ae282013b5b07c
7
- data.tar.gz: 18d3627016b31b6307bce7777d197b5e9dfb0bbbb7db5336ab5588dbf20050e876c2d29d48faa5982667ce2db9a76c08b560658e75f39a1fd041a512d185d374
6
+ metadata.gz: b5f4ac8ef97c97adeafd44f7418d71bb76b4b74c4851d0070fcb12286ad70dd5e4d8106487b2f69912196bc19df12d1908b6ec628c1ef7643cb48ce4096d06f9
7
+ data.tar.gz: 149ef827992123bafeb61a254996075de96409edda83c80b461645d771cb1df188f5407a89d27c6d336731fe2c936c3df22dd1644c2476b582b3d25300720ce0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dctl_rb (0.4.1)
4
+ dctl_rb (0.5.0)
5
5
  config (>= 1, < 2)
6
6
  rainbow (>= 2.2, < 3)
7
7
  thor (~> 0.17, >= 0.17.0)
data/exe/dctl CHANGED
@@ -125,6 +125,12 @@ module Dctl
125
125
  stream_output "#{sudo}docker-compose -f #{dctl.compose_file_path} ps", exec: true
126
126
  end
127
127
 
128
+ desc "release IMAGE", "Increase the version number for the given image"
129
+ def release(image)
130
+ dctl = Dctl::Main.new env: options[:env]
131
+ dctl.release(image)
132
+ end
133
+
128
134
  desc "initdb", "Setup initial postgres database"
129
135
  def initdb
130
136
  dctl = Dctl::Main.new env: options[:env]
data/lib/dctl/main.rb CHANGED
@@ -13,10 +13,9 @@ module Dctl
13
13
  #
14
14
  # @example
15
15
  # image_tag("app") # => jutonz/dctl-dev-app:1
16
- def image_tag(image)
16
+ def image_tag(image, version: versions[image])
17
17
  org = settings.org
18
18
  project = settings.project
19
- version = versions[image] || 1
20
19
 
21
20
  "#{org}/#{project}-#{env}-#{image}:#{version}"
22
21
  end
@@ -38,11 +37,36 @@ module Dctl
38
37
  images = versions.keys if images.empty?
39
38
  images = Array(images)
40
39
 
41
- images.each { |i| check_image_name(i) }
40
+ images.each { |image| check_image(image) }
42
41
 
43
42
  images
44
43
  end
45
44
 
45
+ def release(image)
46
+ check_image(image)
47
+
48
+ parsed = parsed_compose_file
49
+ service = parsed.dig "services", image
50
+ old_tag = service["image"]
51
+ puts "Found existing image #{old_tag}"
52
+
53
+ version = versions[image].to_i
54
+ new_tag = image_tag image, version: version + 1
55
+ puts "New tag will be #{new_tag}"
56
+
57
+ service["image"] = new_tag
58
+
59
+ print "Updating..."
60
+ File.write(compose_file_path, parsed.to_yaml)
61
+ puts "done"
62
+
63
+ # Cache bust
64
+ @parsed_compose_file = nil
65
+ @versions = nil
66
+
67
+ puts Rainbow("#{image} is now at version #{version + 1}").fg :green
68
+ end
69
+
46
70
  ##
47
71
  # Returns the path to the .dctl.yml file for the current project
48
72
  def config_path
@@ -66,7 +90,7 @@ module Dctl
66
90
  # service tag is not present
67
91
  #
68
92
  # Expected names look like org/project-env-image:version
69
- def check_image_name(image)
93
+ def check_image(image)
70
94
  tag = image_tag(image)
71
95
 
72
96
  # Check that a service exists for the image
data/lib/dctl/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dctl
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dctl_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Toniazzo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-11 00:00:00.000000000 Z
11
+ date: 2017-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler