container_ship 0.1.2 → 0.1.3
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 +1 -0
- data/Gemfile.lock +26 -22
- data/lib/container_ship/cli.rb +3 -1
- data/lib/container_ship/command/exec_command.rb +2 -2
- data/lib/container_ship/command/modules/docker.rb +4 -1
- data/lib/container_ship/command/modules/ecs.rb +11 -6
- data/lib/container_ship/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: eb9afef88f95f3bb1a71a3280da4dcc0001d6998d9c10c2f18c5e79c5ef64594
|
|
4
|
+
data.tar.gz: a5b9a286b28d7011632ddadc95634eb34bdef30d2822dcddb08e09594390a9d3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d572df8d02e95d6dc8dcf0129a98deb68314481fcce12738db6c11463d12a6aa18fd1f970a20beaf3c152c30e22dd0488655369569afbe32f29ca84ff3843666
|
|
7
|
+
data.tar.gz: 39b233d530327120d4426b317fb8760e911350ce85f9972d4d85ca1e34ca38a0610a9b4f3ffd3ca5531ab6b5404bad76573537a3ff5328d4f63fbfd782bbcec8
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
container_ship (0.1.
|
|
4
|
+
container_ship (0.1.3)
|
|
5
5
|
aws-sdk-cloudwatchlogs
|
|
6
6
|
aws-sdk-ecs
|
|
7
7
|
thor
|
|
@@ -15,36 +15,38 @@ GEM
|
|
|
15
15
|
minitest (~> 5.1)
|
|
16
16
|
tzinfo (~> 1.1)
|
|
17
17
|
zeitwerk (~> 2.2, >= 2.2.2)
|
|
18
|
-
addressable (2.
|
|
18
|
+
addressable (2.8.0)
|
|
19
19
|
public_suffix (>= 2.0.2, < 5.0)
|
|
20
20
|
ast (2.4.2)
|
|
21
|
-
aws-eventstream (1.
|
|
22
|
-
aws-partitions (1.
|
|
23
|
-
aws-sdk-cloudwatchlogs (1.
|
|
24
|
-
aws-sdk-core (~> 3, >= 3.
|
|
21
|
+
aws-eventstream (1.2.0)
|
|
22
|
+
aws-partitions (1.503.0)
|
|
23
|
+
aws-sdk-cloudwatchlogs (1.45.0)
|
|
24
|
+
aws-sdk-core (~> 3, >= 3.120.0)
|
|
25
25
|
aws-sigv4 (~> 1.1)
|
|
26
|
-
aws-sdk-core (3.
|
|
26
|
+
aws-sdk-core (3.121.0)
|
|
27
27
|
aws-eventstream (~> 1, >= 1.0.2)
|
|
28
28
|
aws-partitions (~> 1, >= 1.239.0)
|
|
29
29
|
aws-sigv4 (~> 1.1)
|
|
30
30
|
jmespath (~> 1.0)
|
|
31
|
-
aws-sdk-ecs (1.
|
|
32
|
-
aws-sdk-core (~> 3, >= 3.
|
|
31
|
+
aws-sdk-ecs (1.85.0)
|
|
32
|
+
aws-sdk-core (~> 3, >= 3.120.0)
|
|
33
33
|
aws-sigv4 (~> 1.1)
|
|
34
|
-
aws-sigv4 (1.
|
|
34
|
+
aws-sigv4 (1.4.0)
|
|
35
35
|
aws-eventstream (~> 1, >= 1.0.2)
|
|
36
36
|
codecov (0.5.2)
|
|
37
37
|
simplecov (>= 0.15, < 0.22)
|
|
38
38
|
coderay (1.1.3)
|
|
39
|
-
concurrent-ruby (1.1.
|
|
39
|
+
concurrent-ruby (1.1.9)
|
|
40
40
|
diff-lcs (1.4.4)
|
|
41
41
|
docile (1.3.5)
|
|
42
|
-
faraday (1.
|
|
42
|
+
faraday (1.5.1)
|
|
43
43
|
faraday-em_http (~> 1.0)
|
|
44
44
|
faraday-em_synchrony (~> 1.0)
|
|
45
45
|
faraday-excon (~> 1.1)
|
|
46
|
+
faraday-httpclient (~> 1.0.1)
|
|
46
47
|
faraday-net_http (~> 1.0)
|
|
47
48
|
faraday-net_http_persistent (~> 1.1)
|
|
49
|
+
faraday-patron (~> 1.0)
|
|
48
50
|
multipart-post (>= 1.2, < 3)
|
|
49
51
|
ruby2_keywords (>= 0.0.4)
|
|
50
52
|
faraday-em_http (1.0.0)
|
|
@@ -52,10 +54,12 @@ GEM
|
|
|
52
54
|
faraday-excon (1.1.0)
|
|
53
55
|
faraday-http-cache (2.2.0)
|
|
54
56
|
faraday (>= 0.8)
|
|
57
|
+
faraday-httpclient (1.0.1)
|
|
55
58
|
faraday-net_http (1.0.1)
|
|
56
|
-
faraday-net_http_persistent (1.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
faraday-net_http_persistent (1.2.0)
|
|
60
|
+
faraday-patron (1.0.0)
|
|
61
|
+
ffi (1.15.3)
|
|
62
|
+
formatador (0.3.0)
|
|
59
63
|
github_changelog_generator (1.15.2)
|
|
60
64
|
activesupport
|
|
61
65
|
faraday-http-cache
|
|
@@ -64,13 +68,13 @@ GEM
|
|
|
64
68
|
rainbow (>= 2.2.1)
|
|
65
69
|
rake (>= 10.0)
|
|
66
70
|
retriable (~> 3.0)
|
|
67
|
-
guard (2.
|
|
71
|
+
guard (2.18.0)
|
|
68
72
|
formatador (>= 0.2.4)
|
|
69
73
|
listen (>= 2.7, < 4.0)
|
|
70
74
|
lumberjack (>= 1.0.12, < 2.0)
|
|
71
75
|
nenv (~> 0.1)
|
|
72
76
|
notiffany (~> 0.0)
|
|
73
|
-
pry (>= 0.
|
|
77
|
+
pry (>= 0.13.0)
|
|
74
78
|
shellany (~> 0.0)
|
|
75
79
|
thor (>= 0.18.1)
|
|
76
80
|
guard-compat (1.2.1)
|
|
@@ -84,7 +88,7 @@ GEM
|
|
|
84
88
|
i18n (1.8.10)
|
|
85
89
|
concurrent-ruby (~> 1.0)
|
|
86
90
|
jmespath (1.4.0)
|
|
87
|
-
listen (3.
|
|
91
|
+
listen (3.6.0)
|
|
88
92
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
89
93
|
rb-inotify (~> 0.9, >= 0.9.10)
|
|
90
94
|
lumberjack (1.2.8)
|
|
@@ -100,14 +104,14 @@ GEM
|
|
|
100
104
|
faraday (>= 0.9)
|
|
101
105
|
sawyer (~> 0.8.0, >= 0.5.3)
|
|
102
106
|
parallel (1.20.1)
|
|
103
|
-
parser (3.0.
|
|
107
|
+
parser (3.0.2.0)
|
|
104
108
|
ast (~> 2.4.1)
|
|
105
109
|
pry (0.14.1)
|
|
106
110
|
coderay (~> 1.1)
|
|
107
111
|
method_source (~> 1.0)
|
|
108
112
|
public_suffix (4.0.6)
|
|
109
113
|
rainbow (3.0.0)
|
|
110
|
-
rake (13.0.
|
|
114
|
+
rake (13.0.6)
|
|
111
115
|
rb-fsevent (0.11.0)
|
|
112
116
|
rb-inotify (0.10.1)
|
|
113
117
|
ffi (~> 1.0)
|
|
@@ -139,7 +143,7 @@ GEM
|
|
|
139
143
|
rubocop-ast (1.4.1)
|
|
140
144
|
parser (>= 2.7.1.5)
|
|
141
145
|
ruby-progressbar (1.11.0)
|
|
142
|
-
ruby2_keywords (0.0.
|
|
146
|
+
ruby2_keywords (0.0.5)
|
|
143
147
|
sawyer (0.8.2)
|
|
144
148
|
addressable (>= 2.3.5)
|
|
145
149
|
faraday (> 0.8, < 2.0)
|
|
@@ -174,4 +178,4 @@ DEPENDENCIES
|
|
|
174
178
|
simplecov
|
|
175
179
|
|
|
176
180
|
BUNDLED WITH
|
|
177
|
-
2.
|
|
181
|
+
2.2.17
|
data/lib/container_ship/cli.rb
CHANGED
|
@@ -16,8 +16,10 @@ module ContainerShip
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
desc 'exec CLUSTER_NAME SERVICE_NAME ENVIRONMENT BUILD_NUMBER', 'exec specified task'
|
|
19
|
+
method_option 'timeout', desc: 'Timeout seconds for executing the task. Default 5 minutes.'
|
|
19
20
|
def exec(cluster_name, service_name, environment, build_number)
|
|
20
|
-
|
|
21
|
+
timeout = options['timeout']&.to_i || 300
|
|
22
|
+
Command::ExecCommand.new.run(cluster_name, service_name, environment, build_number, timeout: timeout)
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
desc 'version', 'display gem version'
|
|
@@ -17,7 +17,7 @@ module ContainerShip
|
|
|
17
17
|
include Modules::Ecs
|
|
18
18
|
include Modules::PrintTask
|
|
19
19
|
|
|
20
|
-
def run(cluster_name, task_name, environment, build_number)
|
|
20
|
+
def run(cluster_name, task_name, environment, build_number, timeout: nil)
|
|
21
21
|
task_definition = TaskDefinition.new(cluster_name, 'tasks', task_name, environment, build_number)
|
|
22
22
|
|
|
23
23
|
push_image task_definition
|
|
@@ -31,7 +31,7 @@ module ContainerShip
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
exit_status = print_around_task('Waiting task is completed... ') do
|
|
34
|
-
wait_task task_definition, task_arn
|
|
34
|
+
wait_task task_definition, task_arn, timeout: timeout
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
show_log task_definition, task_arn
|
|
@@ -5,7 +5,9 @@ module ContainerShip
|
|
|
5
5
|
module Modules
|
|
6
6
|
module Docker
|
|
7
7
|
def push_image(task_definition)
|
|
8
|
+
puts "docker build -t \"#{task_definition.image_name}:#{task_definition.build_number}\" ."
|
|
8
9
|
sh "docker build -t \"#{task_definition.image_name}:#{task_definition.build_number}\" ."
|
|
10
|
+
puts "docker push #{task_definition.image_name}:#{task_definition.build_number}"
|
|
9
11
|
sh "docker push #{task_definition.image_name}:#{task_definition.build_number}"
|
|
10
12
|
end
|
|
11
13
|
|
|
@@ -13,8 +15,9 @@ module ContainerShip
|
|
|
13
15
|
|
|
14
16
|
def sh(command)
|
|
15
17
|
status = nil
|
|
16
|
-
Open3.popen3(command) do |_i, o,
|
|
18
|
+
Open3.popen3(command) do |_i, o, e, w|
|
|
17
19
|
o.each { |line| puts line }
|
|
20
|
+
e.each { |line| puts line }
|
|
18
21
|
status = w.value
|
|
19
22
|
end
|
|
20
23
|
exit(status.exitstatus) unless status.success?
|
|
@@ -30,8 +30,8 @@ module ContainerShip
|
|
|
30
30
|
.task_arn
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
def wait_task(task_definition, task_arn)
|
|
34
|
-
do_every_5_seconds do
|
|
33
|
+
def wait_task(task_definition, task_arn, timeout: nil)
|
|
34
|
+
do_every_5_seconds(timeout: timeout) do
|
|
35
35
|
aws_ecs_client.describe_tasks(cluster: task_definition.full_cluster_name, tasks: [task_arn])
|
|
36
36
|
.tasks
|
|
37
37
|
.first
|
|
@@ -47,16 +47,21 @@ module ContainerShip
|
|
|
47
47
|
@aws_ecs_client ||= Aws::ECS::Client.new
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
def do_every_5_seconds
|
|
51
|
-
|
|
50
|
+
def do_every_5_seconds(timeout: nil)
|
|
51
|
+
timeout ||= 300 # default is 5 minutes
|
|
52
|
+
start = Time.now
|
|
52
53
|
loop do
|
|
53
54
|
sleep 3
|
|
54
55
|
print '.'
|
|
55
56
|
exit_status = yield
|
|
56
|
-
|
|
57
|
+
elapsed = Time.now - start
|
|
58
|
+
if elapsed > timeout
|
|
59
|
+
puts "Timeout! elapsed: #{elapsed} seconds"
|
|
60
|
+
return 124
|
|
61
|
+
end
|
|
57
62
|
next if exit_status.nil?
|
|
58
|
-
return 124 if count > 60
|
|
59
63
|
|
|
64
|
+
puts "exit_code of wait_task is #{exit_status}"
|
|
60
65
|
return exit_status
|
|
61
66
|
end
|
|
62
67
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: container_ship
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yuji Ueki
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-09-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: aws-sdk-cloudwatchlogs
|