ecs_helper 0.0.18 → 0.0.22
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 +4 -4
- data/.gitignore +13 -0
- data/Dockerfile +15 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +124 -0
- data/Rakefile +12 -0
- data/bin/console +12 -0
- data/bin/ecs_helper +3 -1
- data/docker-compose.yml +31 -0
- data/ecs_helper.gemspec +41 -0
- data/lib/ecs_helper/command/build_and_push.rb +29 -22
- data/lib/ecs_helper/command/ecr_login.rb +0 -6
- data/lib/ecs_helper/command/export_images.rb +1 -0
- data/lib/ecs_helper/command.rb +0 -22
- data/lib/ecs_helper/common_helper.rb +1 -0
- data/lib/ecs_helper/task_definition_helper.rb +3 -12
- data/lib/ecs_helper/version.rb +5 -0
- metadata +163 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2aad1449589dfa716e00c39044d4d41a26be0d6259a58dd7d3afbc12aa04f080
|
|
4
|
+
data.tar.gz: 7adf8d5400ae6b72f1e95a6ea28eebf36680991d4159c581a4724e57e40441f2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e05baf049896f3e556a782625a458ef2eb5b82700b3dec40de575d94b9052be752422bc26250e2025a91569c5a41e6f758f2ec33c2598d6d2642ac688606477b
|
|
7
|
+
data.tar.gz: 7f1af6a600d59038880b9edb87b32f670ca52721d960b634a2da49a3c825d9e80d583bec6aa8a79d49da20c351dc44cbaad0b39857ace8af7dd8f0b2fce07c18
|
data/.gitignore
ADDED
data/Dockerfile
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
FROM ruby:3.0.2-alpine3.12
|
|
2
|
+
|
|
3
|
+
RUN apk update && apk upgrade
|
|
4
|
+
RUN apk add bash
|
|
5
|
+
RUN apk add curl-dev ruby-dev build-base git curl ruby-json openssl apache2-utils sqlite-libs sqlite sqlite-dev
|
|
6
|
+
|
|
7
|
+
RUN mkdir -p /gem
|
|
8
|
+
WORKDIR /gem
|
|
9
|
+
|
|
10
|
+
COPY lib/ecs_helper/version.rb /gem/lib/ecs_helper/
|
|
11
|
+
COPY ecs_helper.gemspec /gem/
|
|
12
|
+
COPY Gemfile* /gem/
|
|
13
|
+
RUN bundle install --jobs 4
|
|
14
|
+
|
|
15
|
+
COPY . /gem
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
ecs_helper (0.0.22)
|
|
5
|
+
aws-sdk-ecr (~> 1.42, >= 1.42)
|
|
6
|
+
aws-sdk-ecrpublic (~> 1.3, >= 1.3)
|
|
7
|
+
aws-sdk-ecs (~> 1.80, >= 1.80)
|
|
8
|
+
colorize (~> 0.8, >= 0.8)
|
|
9
|
+
json (~> 2.5, >= 2.5)
|
|
10
|
+
terrapin (~> 0.6, >= 0.6)
|
|
11
|
+
|
|
12
|
+
GEM
|
|
13
|
+
remote: https://rubygems.org/
|
|
14
|
+
specs:
|
|
15
|
+
addressable (2.8.0)
|
|
16
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
17
|
+
ast (2.4.2)
|
|
18
|
+
awesome_print (1.9.2)
|
|
19
|
+
aws-eventstream (1.2.0)
|
|
20
|
+
aws-partitions (1.496.0)
|
|
21
|
+
aws-sdk-core (3.121.0)
|
|
22
|
+
aws-eventstream (~> 1, >= 1.0.2)
|
|
23
|
+
aws-partitions (~> 1, >= 1.239.0)
|
|
24
|
+
aws-sigv4 (~> 1.1)
|
|
25
|
+
jmespath (~> 1.0)
|
|
26
|
+
aws-sdk-ecr (1.45.0)
|
|
27
|
+
aws-sdk-core (~> 3, >= 3.120.0)
|
|
28
|
+
aws-sigv4 (~> 1.1)
|
|
29
|
+
aws-sdk-ecrpublic (1.6.0)
|
|
30
|
+
aws-sdk-core (~> 3, >= 3.120.0)
|
|
31
|
+
aws-sigv4 (~> 1.1)
|
|
32
|
+
aws-sdk-ecs (1.85.0)
|
|
33
|
+
aws-sdk-core (~> 3, >= 3.120.0)
|
|
34
|
+
aws-sigv4 (~> 1.1)
|
|
35
|
+
aws-sigv4 (1.4.0)
|
|
36
|
+
aws-eventstream (~> 1, >= 1.0.2)
|
|
37
|
+
byebug (11.1.3)
|
|
38
|
+
climate_control (0.2.0)
|
|
39
|
+
coderay (1.1.3)
|
|
40
|
+
colorize (0.8.1)
|
|
41
|
+
coveralls (0.8.23)
|
|
42
|
+
json (>= 1.8, < 3)
|
|
43
|
+
simplecov (~> 0.16.1)
|
|
44
|
+
term-ansicolor (~> 1.3)
|
|
45
|
+
thor (>= 0.19.4, < 2.0)
|
|
46
|
+
tins (~> 1.6)
|
|
47
|
+
crack (0.4.5)
|
|
48
|
+
rexml
|
|
49
|
+
docile (1.4.0)
|
|
50
|
+
hashdiff (1.0.1)
|
|
51
|
+
jmespath (1.4.0)
|
|
52
|
+
json (2.5.1)
|
|
53
|
+
method_source (1.0.0)
|
|
54
|
+
minitest (5.14.4)
|
|
55
|
+
parallel (1.20.1)
|
|
56
|
+
parser (3.0.2.0)
|
|
57
|
+
ast (~> 2.4.1)
|
|
58
|
+
pry (0.13.1)
|
|
59
|
+
coderay (~> 1.1)
|
|
60
|
+
method_source (~> 1.0)
|
|
61
|
+
pry-byebug (3.9.0)
|
|
62
|
+
byebug (~> 11.0)
|
|
63
|
+
pry (~> 0.13.0)
|
|
64
|
+
pry-inline (1.0.7)
|
|
65
|
+
pry (> 0.10.0)
|
|
66
|
+
unicode (~> 0.4.4)
|
|
67
|
+
public_suffix (4.0.6)
|
|
68
|
+
rainbow (3.0.0)
|
|
69
|
+
rake (13.0.6)
|
|
70
|
+
regexp_parser (2.1.1)
|
|
71
|
+
rexml (3.2.5)
|
|
72
|
+
rubocop (1.20.0)
|
|
73
|
+
parallel (~> 1.10)
|
|
74
|
+
parser (>= 3.0.0.0)
|
|
75
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
76
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
77
|
+
rexml
|
|
78
|
+
rubocop-ast (>= 1.9.1, < 2.0)
|
|
79
|
+
ruby-progressbar (~> 1.7)
|
|
80
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
|
81
|
+
rubocop-ast (1.11.0)
|
|
82
|
+
parser (>= 3.0.1.1)
|
|
83
|
+
rubocop-minitest (0.15.0)
|
|
84
|
+
rubocop (>= 0.90, < 2.0)
|
|
85
|
+
ruby-progressbar (1.11.0)
|
|
86
|
+
simplecov (0.16.1)
|
|
87
|
+
docile (~> 1.1)
|
|
88
|
+
json (>= 1.8, < 3)
|
|
89
|
+
simplecov-html (~> 0.10.0)
|
|
90
|
+
simplecov-html (0.10.2)
|
|
91
|
+
sync (0.5.0)
|
|
92
|
+
term-ansicolor (1.7.1)
|
|
93
|
+
tins (~> 1.0)
|
|
94
|
+
terrapin (0.6.0)
|
|
95
|
+
climate_control (>= 0.0.3, < 1.0)
|
|
96
|
+
thor (1.1.0)
|
|
97
|
+
tins (1.29.1)
|
|
98
|
+
sync
|
|
99
|
+
unicode (0.4.4.4)
|
|
100
|
+
unicode-display_width (2.0.0)
|
|
101
|
+
webmock (3.14.0)
|
|
102
|
+
addressable (>= 2.8.0)
|
|
103
|
+
crack (>= 0.3.2)
|
|
104
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
|
105
|
+
|
|
106
|
+
PLATFORMS
|
|
107
|
+
x86_64-linux-musl
|
|
108
|
+
|
|
109
|
+
DEPENDENCIES
|
|
110
|
+
awesome_print
|
|
111
|
+
bundler (~> 2.2)
|
|
112
|
+
coveralls
|
|
113
|
+
ecs_helper!
|
|
114
|
+
minitest
|
|
115
|
+
pry
|
|
116
|
+
pry-byebug
|
|
117
|
+
pry-inline
|
|
118
|
+
rake
|
|
119
|
+
rubocop
|
|
120
|
+
rubocop-minitest
|
|
121
|
+
webmock
|
|
122
|
+
|
|
123
|
+
BUNDLED WITH
|
|
124
|
+
2.2.22
|
data/Rakefile
ADDED
data/bin/console
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require 'bundler/setup'
|
|
5
|
+
require 'ecs_helper'
|
|
6
|
+
|
|
7
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
8
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
9
|
+
|
|
10
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
11
|
+
require 'pry'
|
|
12
|
+
Pry.start
|
data/bin/ecs_helper
CHANGED
data/docker-compose.yml
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
version: "3.7"
|
|
2
|
+
|
|
3
|
+
services:
|
|
4
|
+
gem:
|
|
5
|
+
build: .
|
|
6
|
+
volumes:
|
|
7
|
+
- ./:/gem:cached
|
|
8
|
+
- ~/.ssh:/root/.ssh
|
|
9
|
+
- ~/.bash_history:/root/.bash_history
|
|
10
|
+
- ~/.pryrc:/root/.pryrc
|
|
11
|
+
- bundle_cache:/bundle_cache
|
|
12
|
+
environment:
|
|
13
|
+
- AWS_REGION
|
|
14
|
+
- AWS_DEFAULT_REGION
|
|
15
|
+
- AWS_ACCESS_KEY_ID
|
|
16
|
+
- AWS_SECRET_ACCESS_KEY
|
|
17
|
+
- AWS_SESSION_TOKEN
|
|
18
|
+
- AWS_SECURITY_TOKEN
|
|
19
|
+
- AWS_SESSION_EXPIRATION
|
|
20
|
+
- BUNDLE_PATH=/bundle_cache
|
|
21
|
+
- GEM_HOME=/bundle_cache
|
|
22
|
+
- GEM_PATH=/bundle_cache
|
|
23
|
+
|
|
24
|
+
bundle_cache:
|
|
25
|
+
image: busybox
|
|
26
|
+
volumes:
|
|
27
|
+
- bundle_cache:/bundle_cache
|
|
28
|
+
|
|
29
|
+
volumes:
|
|
30
|
+
bundle_cache:
|
|
31
|
+
public:
|
data/ecs_helper.gemspec
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
|
+
require 'ecs_helper/version'
|
|
6
|
+
|
|
7
|
+
Gem::Specification.new do |s|
|
|
8
|
+
s.name = 'ecs_helper'
|
|
9
|
+
s.version = ECSHelper::VERSION
|
|
10
|
+
s.summary = 'ECSHelper'
|
|
11
|
+
s.description = 'A simple gem which make CI CD process easier for AWS ECS service'
|
|
12
|
+
s.authors = ['Artem Petrov']
|
|
13
|
+
s.email = 'artem.petrov@dualbootpartners.com'
|
|
14
|
+
s.files = Dir['lib/**/*.rb']
|
|
15
|
+
s.bindir = 'bin'
|
|
16
|
+
s.executables << 'ecs_helper'
|
|
17
|
+
s.homepage = 'https://github.com/artempartos/ecs_helper'
|
|
18
|
+
s.license = 'MIT'
|
|
19
|
+
s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
20
|
+
s.require_paths = ['lib']
|
|
21
|
+
|
|
22
|
+
s.add_development_dependency 'awesome_print'
|
|
23
|
+
s.add_development_dependency 'minitest'
|
|
24
|
+
s.add_development_dependency 'pry'
|
|
25
|
+
s.add_development_dependency 'pry-byebug'
|
|
26
|
+
s.add_development_dependency 'pry-inline'
|
|
27
|
+
s.add_development_dependency 'rubocop'
|
|
28
|
+
s.add_development_dependency 'rubocop-minitest'
|
|
29
|
+
s.add_development_dependency 'webmock'
|
|
30
|
+
|
|
31
|
+
s.add_development_dependency "bundler", "~> 2.2"
|
|
32
|
+
s.add_development_dependency "rake"
|
|
33
|
+
|
|
34
|
+
s.add_runtime_dependency 'aws-sdk-ecr', '~> 1.42', '>= 1.42'
|
|
35
|
+
s.add_runtime_dependency 'aws-sdk-ecrpublic', '~> 1.3', '>= 1.3'
|
|
36
|
+
s.add_runtime_dependency 'aws-sdk-ecs', '~> 1.80', '>= 1.80'
|
|
37
|
+
s.add_runtime_dependency 'colorize', '~> 0.8', '>= 0.8'
|
|
38
|
+
s.add_runtime_dependency 'json', '~> 2.5', '>= 2.5'
|
|
39
|
+
s.add_runtime_dependency 'terrapin', '~> 0.6', '>= 0.6'
|
|
40
|
+
|
|
41
|
+
end
|
|
@@ -1,16 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'terrapin'
|
|
2
4
|
|
|
3
5
|
class ECSHelper::Command::BuildAndPush < ECSHelper::Command::Base
|
|
4
|
-
|
|
5
6
|
def cmd_option_parser
|
|
6
|
-
options = {}
|
|
7
|
+
options = { build_args: [] }
|
|
7
8
|
parser = ::OptionParser.new do |opts|
|
|
8
|
-
opts.banner =
|
|
9
|
-
opts.on(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
opts.on(
|
|
9
|
+
opts.banner = 'Usage: ecs_helper build_and_push [options]'
|
|
10
|
+
opts.on('-i VALUE', '--image VALUE',
|
|
11
|
+
'Set image name, will be used to detect ecr repo where to push image, for example web/nginx/toolbox (required)') do |c|
|
|
12
|
+
options[:image] = processEqual(c)
|
|
13
|
+
end
|
|
14
|
+
opts.on('-d VALUE', '--directory VALUE', "Set directory for dockerfile and context, default = './'") do |c|
|
|
15
|
+
options[:directory] = processEqual(c)
|
|
16
|
+
end
|
|
17
|
+
opts.on('-p VALUE', '--project VALUE',
|
|
18
|
+
"Set project name, if not specified will look at ENV['PROJECT'], will be used to detect cluster") do |p|
|
|
19
|
+
options[:project] = processEqual(p)
|
|
20
|
+
end
|
|
21
|
+
opts.on('-a VALUE', '--application VALUE',
|
|
22
|
+
"Set application name, if not specified will look at ENV['APPLICATION'], will be used to detect service and task definition") do |a|
|
|
23
|
+
options[:application] = processEqual(a)
|
|
24
|
+
end
|
|
25
|
+
opts.on('-c', '--cache', 'Cache image before build, default false') { options[:cache] = true }
|
|
26
|
+
opts.on('--build-arg=VALUE', 'Pass --build-arg to the build command') { |o| options[:build_args] << o }
|
|
14
27
|
end
|
|
15
28
|
[parser, options]
|
|
16
29
|
end
|
|
@@ -24,19 +37,13 @@ class ECSHelper::Command::BuildAndPush < ECSHelper::Command::Base
|
|
|
24
37
|
log("Options", options)
|
|
25
38
|
log("Repository", repository)
|
|
26
39
|
log("Auth Private", auth_private)
|
|
27
|
-
log("Auth Public", auth_public)
|
|
28
40
|
should_cache? && log("Pull", pull)
|
|
29
41
|
log("Build", build)
|
|
30
42
|
log("Push", push)
|
|
31
43
|
end
|
|
32
44
|
|
|
33
|
-
def auth_public
|
|
34
|
-
auth_cmd = Terrapin::CommandLine.new("aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws")
|
|
35
|
-
auth_cmd.run
|
|
36
|
-
end
|
|
37
|
-
|
|
38
45
|
def auth_private
|
|
39
|
-
auth_cmd = Terrapin::CommandLine.new(
|
|
46
|
+
auth_cmd = Terrapin::CommandLine.new('aws ecr get-login --no-include-email | sh')
|
|
40
47
|
auth_cmd.run
|
|
41
48
|
end
|
|
42
49
|
|
|
@@ -53,10 +60,12 @@ class ECSHelper::Command::BuildAndPush < ECSHelper::Command::Base
|
|
|
53
60
|
|
|
54
61
|
def build
|
|
55
62
|
build_command = ["docker build #{directory}"]
|
|
63
|
+
build_args = options[:build_args].map { |a| "--build-arg=#{a}" }
|
|
56
64
|
cache_command = should_cache? ? ["--cache-from #{latest_tag}"] : []
|
|
57
65
|
tags_command = ["--tag #{latest_tag} --tag #{version_tag}"]
|
|
58
|
-
command = (build_command + cache_command + tags_command).join(' ')
|
|
66
|
+
command = (build_command + build_args + cache_command + tags_command).join(' ')
|
|
59
67
|
build_cmd = Terrapin::CommandLine.new(command)
|
|
68
|
+
|
|
60
69
|
puts "Building with two tags: #{latest_tag} & #{version_tag}"
|
|
61
70
|
build_cmd.run
|
|
62
71
|
end
|
|
@@ -73,7 +82,7 @@ class ECSHelper::Command::BuildAndPush < ECSHelper::Command::Base
|
|
|
73
82
|
end
|
|
74
83
|
|
|
75
84
|
def directory
|
|
76
|
-
options[:directory] ||
|
|
85
|
+
options[:directory] || './'
|
|
77
86
|
end
|
|
78
87
|
|
|
79
88
|
def latest_tag
|
|
@@ -84,12 +93,10 @@ class ECSHelper::Command::BuildAndPush < ECSHelper::Command::Base
|
|
|
84
93
|
"#{repository}:#{helper.version}"
|
|
85
94
|
end
|
|
86
95
|
|
|
87
|
-
|
|
88
96
|
def repository
|
|
89
97
|
@repository ||= begin
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
all = private_repos + public_repos
|
|
98
|
+
all = client.private_repositories
|
|
99
|
+
|
|
93
100
|
with_name = all.select { |r| r.repository_arn.include?(image_name) }
|
|
94
101
|
return with_name[0].repository_uri if with_name.length === 1
|
|
95
102
|
|
|
@@ -99,4 +106,4 @@ class ECSHelper::Command::BuildAndPush < ECSHelper::Command::Base
|
|
|
99
106
|
raise "Can't detect ECR repository"
|
|
100
107
|
end
|
|
101
108
|
end
|
|
102
|
-
end
|
|
109
|
+
end
|
|
@@ -17,12 +17,6 @@ class ECSHelper::Command::ECRLogin < ECSHelper::Command::Base
|
|
|
17
17
|
def run
|
|
18
18
|
log("Command", type)
|
|
19
19
|
log("Auth Private", auth_private)
|
|
20
|
-
log("Auth Public", auth_public)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def auth_public
|
|
24
|
-
auth_cmd = Terrapin::CommandLine.new("aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws")
|
|
25
|
-
auth_cmd.run
|
|
26
20
|
end
|
|
27
21
|
|
|
28
22
|
def auth_private
|
|
@@ -31,6 +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
35
|
key = container_name.upcase.gsub("-", "_") + "_IMAGE"
|
|
35
36
|
value = "#{repo.repository_uri}:#{helper.version}"
|
|
36
37
|
"#{key}=#{value}"
|
data/lib/ecs_helper/command.rb
CHANGED
|
@@ -48,25 +48,3 @@ def global_option_parser
|
|
|
48
48
|
opts.banner = "Usage: ecs_helper command [options]"
|
|
49
49
|
end
|
|
50
50
|
end
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
def self.parse
|
|
54
|
-
options = {}
|
|
55
|
-
command = ARGV.shift
|
|
56
|
-
|
|
57
|
-
unless command && Command::AVAILABLE_COMMANDS.include?(command)
|
|
58
|
-
puts "Command not found".light_white
|
|
59
|
-
puts "Available commands are #{Command::AVAILABLE_COMMANDS}".light_white
|
|
60
|
-
puts global
|
|
61
|
-
exit
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
subcommands_parser, required = subcommands(command, options)
|
|
65
|
-
subcommands_parser.permute!(into: options)
|
|
66
|
-
|
|
67
|
-
validate(command, options, required, subcommands_parser)
|
|
68
|
-
|
|
69
|
-
[command, options]
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
|
|
@@ -41,7 +41,7 @@ class ECSHelper::TaskDefinitionHelper
|
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def container_definition_to_ecr(cd)
|
|
44
|
-
repo = repo_for(cd
|
|
44
|
+
repo = repo_for(cd)
|
|
45
45
|
is_ecr = cd.image.include?(ecr_base)
|
|
46
46
|
image = repo && version_image(repo)
|
|
47
47
|
should_update = is_ecr && repo && image
|
|
@@ -58,18 +58,9 @@ class ECSHelper::TaskDefinitionHelper
|
|
|
58
58
|
|
|
59
59
|
private
|
|
60
60
|
|
|
61
|
-
def
|
|
62
|
-
repo = repo_for(cd.name)
|
|
63
|
-
is_ecr = cd.image.include?(ecr_base)
|
|
64
|
-
image = repo && version_image(repo)
|
|
65
|
-
should_update = is_ecr && repo && image
|
|
66
|
-
[repo, is_ecr, image, should_update]
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def repo_for(name)
|
|
61
|
+
def repo_for(cd)
|
|
70
62
|
repositories.find do |r|
|
|
71
|
-
|
|
72
|
-
uri.include?(helper.application) && uri.include?(helper.project) && uri.include?(name)
|
|
63
|
+
cd.image.include?(r.repository_uri)
|
|
73
64
|
end
|
|
74
65
|
end
|
|
75
66
|
|
metadata
CHANGED
|
@@ -1,35 +1,155 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ecs_helper
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.22
|
|
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-
|
|
11
|
+
date: 2021-09-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: awesome_print
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
20
|
-
|
|
19
|
+
version: '0'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
21
25
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: '
|
|
23
|
-
|
|
26
|
+
version: '0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: minitest
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
type: :development
|
|
24
35
|
prerelease: false
|
|
25
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
37
|
requirements:
|
|
27
38
|
- - ">="
|
|
28
39
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
40
|
+
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: pry
|
|
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'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: pry-byebug
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: pry-inline
|
|
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'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: rubocop
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: rubocop-minitest
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: webmock
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: bundler
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
30
129
|
- - "~>"
|
|
31
130
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '
|
|
131
|
+
version: '2.2'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '2.2'
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: rake
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - ">="
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: '0'
|
|
146
|
+
type: :development
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - ">="
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '0'
|
|
33
153
|
- !ruby/object:Gem::Dependency
|
|
34
154
|
name: aws-sdk-ecr
|
|
35
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -71,25 +191,25 @@ dependencies:
|
|
|
71
191
|
- !ruby/object:Gem::Version
|
|
72
192
|
version: '1.3'
|
|
73
193
|
- !ruby/object:Gem::Dependency
|
|
74
|
-
name:
|
|
194
|
+
name: aws-sdk-ecs
|
|
75
195
|
requirement: !ruby/object:Gem::Requirement
|
|
76
196
|
requirements:
|
|
77
197
|
- - ">="
|
|
78
198
|
- !ruby/object:Gem::Version
|
|
79
|
-
version: '
|
|
199
|
+
version: '1.80'
|
|
80
200
|
- - "~>"
|
|
81
201
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
202
|
+
version: '1.80'
|
|
83
203
|
type: :runtime
|
|
84
204
|
prerelease: false
|
|
85
205
|
version_requirements: !ruby/object:Gem::Requirement
|
|
86
206
|
requirements:
|
|
87
207
|
- - ">="
|
|
88
208
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
209
|
+
version: '1.80'
|
|
90
210
|
- - "~>"
|
|
91
211
|
- !ruby/object:Gem::Version
|
|
92
|
-
version: '
|
|
212
|
+
version: '1.80'
|
|
93
213
|
- !ruby/object:Gem::Dependency
|
|
94
214
|
name: colorize
|
|
95
215
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -110,6 +230,26 @@ dependencies:
|
|
|
110
230
|
- - "~>"
|
|
111
231
|
- !ruby/object:Gem::Version
|
|
112
232
|
version: '0.8'
|
|
233
|
+
- !ruby/object:Gem::Dependency
|
|
234
|
+
name: json
|
|
235
|
+
requirement: !ruby/object:Gem::Requirement
|
|
236
|
+
requirements:
|
|
237
|
+
- - ">="
|
|
238
|
+
- !ruby/object:Gem::Version
|
|
239
|
+
version: '2.5'
|
|
240
|
+
- - "~>"
|
|
241
|
+
- !ruby/object:Gem::Version
|
|
242
|
+
version: '2.5'
|
|
243
|
+
type: :runtime
|
|
244
|
+
prerelease: false
|
|
245
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
246
|
+
requirements:
|
|
247
|
+
- - ">="
|
|
248
|
+
- !ruby/object:Gem::Version
|
|
249
|
+
version: '2.5'
|
|
250
|
+
- - "~>"
|
|
251
|
+
- !ruby/object:Gem::Version
|
|
252
|
+
version: '2.5'
|
|
113
253
|
- !ruby/object:Gem::Dependency
|
|
114
254
|
name: terrapin
|
|
115
255
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -137,7 +277,15 @@ executables:
|
|
|
137
277
|
extensions: []
|
|
138
278
|
extra_rdoc_files: []
|
|
139
279
|
files:
|
|
280
|
+
- ".gitignore"
|
|
281
|
+
- Dockerfile
|
|
282
|
+
- Gemfile
|
|
283
|
+
- Gemfile.lock
|
|
284
|
+
- Rakefile
|
|
285
|
+
- bin/console
|
|
140
286
|
- bin/ecs_helper
|
|
287
|
+
- docker-compose.yml
|
|
288
|
+
- ecs_helper.gemspec
|
|
141
289
|
- lib/ecs_helper.rb
|
|
142
290
|
- lib/ecs_helper/client.rb
|
|
143
291
|
- lib/ecs_helper/cluster_helper.rb
|
|
@@ -152,6 +300,7 @@ files:
|
|
|
152
300
|
- lib/ecs_helper/logging.rb
|
|
153
301
|
- lib/ecs_helper/service_helper.rb
|
|
154
302
|
- lib/ecs_helper/task_definition_helper.rb
|
|
303
|
+
- lib/ecs_helper/version.rb
|
|
155
304
|
homepage: https://github.com/artempartos/ecs_helper
|
|
156
305
|
licenses:
|
|
157
306
|
- MIT
|