dctl_rb 0.4.1 → 0.5.0

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.
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