ecs_helper 0.0.21 → 0.0.25

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: a134e023494ab0c6d2ba533f5a377f2c9e0a1328239001e776b6523f27dcad80
4
- data.tar.gz: 2fa77ec7e58de90005f3ebfbf099011adf4c22e2f3325a19d86ed01c7fb6be65
3
+ metadata.gz: 6fcdfa5ea72481d6e07bea7f9bf9ec044ca79ece2c680233f538ed7a4e3a7683
4
+ data.tar.gz: de5b3ea5643b878c6c27989d8fce5a87771c3da25fef2968494fccd422e0774d
5
5
  SHA512:
6
- metadata.gz: 8b6eef42ab91d82356fd191d2175cc09ad44d68ad0f394ca933db747c23c0f0a1b28158a2f6104c0a1d661fd7c7cbf152d8f13659bb91efe6cefb2b7cce71ad8
7
- data.tar.gz: 90a2aa25b21c4d33636663729c93c7724552730a575de445880326a36a8b762dc35c38f91a6c03a2054e4205030a6464e87060af2efa30591adf5f1e532d3525
6
+ metadata.gz: 5061f5c736a06834cfd0486891b82aa5d93cd0938acb9d7c8f8e492e01269b4ee6aac18a5d73a1eeacbb5a8c0ee45c34ea31d358a1729cfc8def3771c7a77d6b
7
+ data.tar.gz: 4c488f4fc1b8badd9a82cee368dc1f21a7b505f047daa16ca51cf93f29e2559211d54a406ef2e05a6c3ffc39bf87d0192595129f7db871d2e0b70b00e0a925f9
data/Gemfile CHANGED
@@ -1,9 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  source 'https://rubygems.org'
4
- ruby '3.0.2'
5
-
6
- # Specify your gem's dependencies in kirpich.gemspec
7
4
  gemspec
8
-
9
- gem 'coveralls', require: false
data/Gemfile.lock CHANGED
@@ -1,13 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ecs_helper (0.0.21)
4
+ ecs_helper (0.0.24)
5
5
  aws-sdk-ecr (~> 1.42, >= 1.42)
6
6
  aws-sdk-ecrpublic (~> 1.3, >= 1.3)
7
7
  aws-sdk-ecs (~> 1.80, >= 1.80)
8
8
  colorize (~> 0.8, >= 0.8)
9
9
  json (~> 2.5, >= 2.5)
10
- rake
11
10
  terrapin (~> 0.6, >= 0.6)
12
11
 
13
12
  GEM
@@ -18,8 +17,8 @@ GEM
18
17
  ast (2.4.2)
19
18
  awesome_print (1.9.2)
20
19
  aws-eventstream (1.2.0)
21
- aws-partitions (1.494.0)
22
- aws-sdk-core (3.120.0)
20
+ aws-partitions (1.496.0)
21
+ aws-sdk-core (3.121.0)
23
22
  aws-eventstream (~> 1, >= 1.0.2)
24
23
  aws-partitions (~> 1, >= 1.239.0)
25
24
  aws-sigv4 (~> 1.1)
@@ -33,35 +32,33 @@ GEM
33
32
  aws-sdk-ecs (1.85.0)
34
33
  aws-sdk-core (~> 3, >= 3.120.0)
35
34
  aws-sigv4 (~> 1.1)
36
- aws-sigv4 (1.3.0)
35
+ aws-sigv4 (1.4.0)
37
36
  aws-eventstream (~> 1, >= 1.0.2)
38
37
  byebug (11.1.3)
39
38
  climate_control (0.2.0)
40
39
  coderay (1.1.3)
41
40
  colorize (0.8.1)
42
- coveralls (0.8.23)
43
- json (>= 1.8, < 3)
44
- simplecov (~> 0.16.1)
45
- term-ansicolor (~> 1.3)
46
- thor (>= 0.19.4, < 2.0)
47
- tins (~> 1.6)
48
41
  crack (0.4.5)
49
42
  rexml
50
- docile (1.4.0)
51
43
  hashdiff (1.0.1)
52
44
  jmespath (1.4.0)
53
45
  json (2.5.1)
54
46
  method_source (1.0.0)
55
47
  minitest (5.14.4)
48
+ minitest-power_assert (0.3.1)
49
+ minitest
50
+ power_assert (>= 1.1)
51
+ mocha (1.13.0)
56
52
  parallel (1.20.1)
57
53
  parser (3.0.2.0)
58
54
  ast (~> 2.4.1)
59
- pry (0.13.1)
55
+ power_assert (2.0.1)
56
+ pry (0.14.1)
60
57
  coderay (~> 1.1)
61
58
  method_source (~> 1.0)
62
- pry-byebug (3.9.0)
59
+ pry-byebug (3.8.0)
63
60
  byebug (~> 11.0)
64
- pry (~> 0.13.0)
61
+ pry (~> 0.10)
65
62
  pry-inline (1.0.7)
66
63
  pry (> 0.10.0)
67
64
  unicode (~> 0.4.4)
@@ -84,19 +81,8 @@ GEM
84
81
  rubocop-minitest (0.15.0)
85
82
  rubocop (>= 0.90, < 2.0)
86
83
  ruby-progressbar (1.11.0)
87
- simplecov (0.16.1)
88
- docile (~> 1.1)
89
- json (>= 1.8, < 3)
90
- simplecov-html (~> 0.10.0)
91
- simplecov-html (0.10.2)
92
- sync (0.5.0)
93
- term-ansicolor (1.7.1)
94
- tins (~> 1.0)
95
84
  terrapin (0.6.0)
96
85
  climate_control (>= 0.0.3, < 1.0)
97
- thor (1.1.0)
98
- tins (1.29.1)
99
- sync
100
86
  unicode (0.4.4.4)
101
87
  unicode-display_width (2.0.0)
102
88
  webmock (3.14.0)
@@ -109,18 +95,18 @@ PLATFORMS
109
95
 
110
96
  DEPENDENCIES
111
97
  awesome_print
112
- coveralls
98
+ bundler (~> 2.2)
113
99
  ecs_helper!
114
100
  minitest
101
+ minitest-power_assert
102
+ mocha
115
103
  pry
116
104
  pry-byebug
117
105
  pry-inline
106
+ rake
118
107
  rubocop
119
108
  rubocop-minitest
120
109
  webmock
121
110
 
122
- RUBY VERSION
123
- ruby 3.0.2p107
124
-
125
111
  BUNDLED WITH
126
112
  2.2.22
data/bin/console CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'bundler/setup'
5
4
  require 'ecs_helper'
6
5
 
7
6
  # You can add fixtures and/or initialization code here to make experimenting
data/bin/ecs_helper CHANGED
@@ -1,8 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require 'bundler/setup'
5
4
  require 'ecs_helper'
6
5
 
7
- helper = ECSHelper.new
8
- helper.run
6
+ begin
7
+ helper = ECSHelper.new
8
+ helper.run
9
+ rescue ECSHelper::Error::Base => e
10
+ puts e.message
11
+ exit 1
12
+ end
data/docker-compose.yml CHANGED
@@ -20,6 +20,7 @@ services:
20
20
  - BUNDLE_PATH=/bundle_cache
21
21
  - GEM_HOME=/bundle_cache
22
22
  - GEM_PATH=/bundle_cache
23
+ - SKIP_LOGS=true
23
24
 
24
25
  bundle_cache:
25
26
  image: busybox
data/ecs_helper.gemspec CHANGED
@@ -21,13 +21,18 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.add_development_dependency 'awesome_print'
23
23
  s.add_development_dependency 'minitest'
24
+ s.add_development_dependency 'mocha'
24
25
  s.add_development_dependency 'pry'
26
+ s.add_development_dependency 'minitest-power_assert'
25
27
  s.add_development_dependency 'pry-byebug'
26
28
  s.add_development_dependency 'pry-inline'
27
29
  s.add_development_dependency 'rubocop'
28
30
  s.add_development_dependency 'rubocop-minitest'
29
31
  s.add_development_dependency 'webmock'
30
32
 
33
+ s.add_development_dependency "bundler", "~> 2.2"
34
+ s.add_development_dependency "rake"
35
+
31
36
  s.add_runtime_dependency 'aws-sdk-ecr', '~> 1.42', '>= 1.42'
32
37
  s.add_runtime_dependency 'aws-sdk-ecrpublic', '~> 1.3', '>= 1.3'
33
38
  s.add_runtime_dependency 'aws-sdk-ecs', '~> 1.80', '>= 1.80'
@@ -35,5 +40,4 @@ Gem::Specification.new do |s|
35
40
  s.add_runtime_dependency 'json', '~> 2.5', '>= 2.5'
36
41
  s.add_runtime_dependency 'terrapin', '~> 0.6', '>= 0.6'
37
42
 
38
- s.add_dependency 'rake'
39
43
  end
@@ -1,13 +1,11 @@
1
1
  require 'aws-sdk-ecs'
2
2
  require 'aws-sdk-ecr'
3
- require 'aws-sdk-ecrpublic'
4
3
 
5
4
  class ECSHelper::Client
6
- attr_accessor :ecs, :ecr, :ecr_public
5
+ attr_accessor :ecs, :ecr
7
6
  def initialize
8
7
  @ecs = Aws::ECS::Client.new
9
8
  @ecr = Aws::ECR::Client.new
10
- @ecr_public = Aws::ECRPublic::Client.new
11
9
  end
12
10
 
13
11
  # ECS
@@ -61,10 +59,6 @@ class ECSHelper::Client
61
59
  ecr.describe_repositories(params).repositories
62
60
  end
63
61
 
64
- def public_repositories(params = {})
65
- ecr_public.describe_repositories(params).repositories
66
- end
67
-
68
62
  def describe_images(params = {})
69
63
  ecr.describe_images(params).image_details[0]
70
64
  end
@@ -17,6 +17,14 @@ class ECSHelper::Command::Base
17
17
  helper.type
18
18
  end
19
19
 
20
+ def project
21
+ helper.project
22
+ end
23
+
24
+ def application
25
+ helper.application
26
+ end
27
+
20
28
  def validate
21
29
  required.each do |r|
22
30
  value = options[r]
@@ -55,7 +55,7 @@ class ECSHelper::Command::BuildAndPush < ECSHelper::Command::Base
55
55
  pull_cmd = Terrapin::CommandLine.new("docker pull #{latest_tag}")
56
56
  pull_cmd.run
57
57
  rescue Terrapin::ExitStatusError => e
58
- puts e.message
58
+ console e.message
59
59
  end
60
60
 
61
61
  def build
@@ -66,7 +66,7 @@ class ECSHelper::Command::BuildAndPush < ECSHelper::Command::Base
66
66
  command = (build_command + build_args + cache_command + tags_command).join(' ')
67
67
  build_cmd = Terrapin::CommandLine.new(command)
68
68
 
69
- puts "Building with two tags: #{latest_tag} & #{version_tag}"
69
+ console "Building with two tags: #{latest_tag} & #{version_tag}"
70
70
  build_cmd.run
71
71
  end
72
72
 
@@ -93,6 +93,14 @@ class ECSHelper::Command::BuildAndPush < ECSHelper::Command::Base
93
93
  "#{repository}:#{helper.version}"
94
94
  end
95
95
 
96
+ def project
97
+ helper.project
98
+ end
99
+
100
+ def application
101
+ helper.application
102
+ end
103
+
96
104
  def repository
97
105
  @repository ||= begin
98
106
  all = client.private_repositories
@@ -31,7 +31,7 @@ class ECSHelper::Command::ExportImages < ECSHelper::Command::Base
31
31
  def export_images
32
32
  variables = (['export'] + client.private_repositories.map do |repo|
33
33
  container_name = repo.repository_name.scan(/#{project}-#{application}-(.*)/).flatten.first
34
- next if conainer_name.nil?
34
+ next if container_name.nil?
35
35
  key = container_name.upcase.gsub("-", "_") + "_IMAGE"
36
36
  value = "#{repo.repository_uri}:#{helper.version}"
37
37
  "#{key}=#{value}"
@@ -26,10 +26,12 @@ class ECSHelper::Command
26
26
 
27
27
  def klass
28
28
  CMD_MAPPING[type] || begin
29
- puts "Command not found".light_white
30
- puts "Available commands are #{AVAILABLE_COMMANDS}".light_white
31
- puts global_option_parser
32
- exit
29
+ messages = [
30
+ "Command not found".light_white,
31
+ "Available commands are #{AVAILABLE_COMMANDS}".light_white,
32
+ global_option_parser
33
+ ]
34
+ raise ECSHelper::Error::CommandNotFound.new(messages)
33
35
  end
34
36
  end
35
37
 
@@ -0,0 +1,10 @@
1
+ class ECSHelper::Error::Base < StandardError
2
+ def initialize(builder)
3
+ @builder = builder
4
+ end
5
+
6
+ def message
7
+ return @builder.join("\n") if @builder
8
+ "Failed"
9
+ end
10
+ end
@@ -0,0 +1,2 @@
1
+ class ECSHelper::Error::CommandNotFound < ECSHelper::Error::Base
2
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ECSHelper::Error
4
+ autoload :Base, 'ecs_helper/error/base'
5
+ autoload :CommandNotFound, 'ecs_helper/error/command_not_found'
6
+ end
@@ -1,16 +1,20 @@
1
1
  module ECSHelper::Logging
2
+ def console(message)
3
+ puts message if ENV["SKIP_LOGS"].nil?
4
+ end
5
+
2
6
  def log(title, message = nil, color = "light_white")
3
7
  if message
4
- puts title.send(color)
5
- puts message
8
+ console title.send(color)
9
+ console message
6
10
  else
7
- puts title
11
+ console title
8
12
  end
9
13
  end
10
14
 
11
15
  def error(message, code = 1)
12
- puts "Error".red
13
- puts message
16
+ console "Error".red
17
+ console message
14
18
  exit code
15
19
  end
16
20
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ECSHelper
4
- VERSION = '0.0.21'
4
+ VERSION = '0.0.25'
5
5
  end
data/lib/ecs_helper.rb CHANGED
@@ -11,6 +11,7 @@ class ECSHelper
11
11
  autoload :ClusterHelper, 'ecs_helper/cluster_helper'
12
12
  autoload :ServiceHelper, 'ecs_helper/service_helper'
13
13
  autoload :TaskDefinitionHelper, 'ecs_helper/task_definition_helper'
14
+ autoload :Error, 'ecs_helper/error'
14
15
  autoload :Command, 'ecs_helper/command'
15
16
 
16
17
  def_delegators :client, :task_definitions, :clusters, :services, :tasks, :repositories, :repositories, :task_definition, :run_task
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecs_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.21
4
+ version: 0.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artem Petrov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-06 00:00:00.000000000 Z
11
+ date: 2021-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mocha
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: pry
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +66,20 @@ dependencies:
52
66
  - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-power_assert
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: pry-byebug
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +150,34 @@ dependencies:
122
150
  - - ">="
123
151
  - !ruby/object:Gem::Version
124
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: bundler
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '2.2'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '2.2'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rake
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
125
181
  - !ruby/object:Gem::Dependency
126
182
  name: aws-sdk-ecr
127
183
  requirement: !ruby/object:Gem::Requirement
@@ -242,20 +298,6 @@ dependencies:
242
298
  - - "~>"
243
299
  - !ruby/object:Gem::Version
244
300
  version: '0.6'
245
- - !ruby/object:Gem::Dependency
246
- name: rake
247
- requirement: !ruby/object:Gem::Requirement
248
- requirements:
249
- - - ">="
250
- - !ruby/object:Gem::Version
251
- version: '0'
252
- type: :runtime
253
- prerelease: false
254
- version_requirements: !ruby/object:Gem::Requirement
255
- requirements:
256
- - - ">="
257
- - !ruby/object:Gem::Version
258
- version: '0'
259
301
  description: A simple gem which make CI CD process easier for AWS ECS service
260
302
  email: artem.petrov@dualbootpartners.com
261
303
  executables:
@@ -283,6 +325,9 @@ files:
283
325
  - lib/ecs_helper/command/export_images.rb
284
326
  - lib/ecs_helper/command/run_command.rb
285
327
  - lib/ecs_helper/common_helper.rb
328
+ - lib/ecs_helper/error.rb
329
+ - lib/ecs_helper/error/base.rb
330
+ - lib/ecs_helper/error/command_not_found.rb
286
331
  - lib/ecs_helper/logging.rb
287
332
  - lib/ecs_helper/service_helper.rb
288
333
  - lib/ecs_helper/task_definition_helper.rb