prima-twig 0.3.22 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/twig-feature +56 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c652a3d316df7d7d81f02368d3d400405c6140f7
|
4
|
+
data.tar.gz: 91d45d39afe69bad6c2886cd9990ba10417ab36f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56688eca11472c2f522923b7859f6ae3e2d110d53dc13a5f5cec90ade5c162c3f24ef90188b0a922a75d654e8e0344d824a168a927bb980f3d46c0b81bc9adcc
|
7
|
+
data.tar.gz: 0d172af4a598b57064a3cce7a6ed96eb509ab81593ae5fca8d437f637091aece0e29811c0f19cd76426b20d66c17112a68a2fbd3c6f8b1d29a24dcdaad22f30e
|
data/bin/twig-feature
CHANGED
@@ -19,12 +19,12 @@ class Release
|
|
19
19
|
@asg = Aws::AutoScaling::Client.new
|
20
20
|
@s3_bucket = 'prima-artifacts'
|
21
21
|
@artifact_path = '/tmp/prima-artifact.zip'
|
22
|
-
@qa_cluster = 'ecs-cluster-qa-ECSCluster-ROF3QJNLOXGG'
|
23
22
|
@import_db_task = 'arn:aws:ecs:eu-west-1:001575623345:task-definition/ecs-task-db-restore-TaskDefinitionDbRestore-1ON8T3XFRV72W:1'
|
24
23
|
@prima_built = false
|
25
24
|
@urania_built = false
|
26
25
|
@backoffice_built = false
|
27
26
|
@dns_record_identifier = nil
|
27
|
+
@ecs_cluster_name = nil
|
28
28
|
end
|
29
29
|
|
30
30
|
def execute! args
|
@@ -99,9 +99,21 @@ class Release
|
|
99
99
|
exit
|
100
100
|
end
|
101
101
|
|
102
|
+
cluster_stack_name = nil
|
102
103
|
stack_list.each do |stack|
|
103
|
-
|
104
|
+
if stack.stack_name.match(/#{env_hash}$/)
|
105
|
+
if stack.stack_name.match(/ecs-cluster/)
|
106
|
+
cluster_stack_name = stack.stack_name
|
107
|
+
else
|
108
|
+
delete_stack(stack.stack_name) if stack.stack_name.match(/#{env_hash}$/)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
while stack_exists?("ecs-asg-allinone-qa-#{env_hash}") do
|
114
|
+
sleep 5
|
104
115
|
end
|
116
|
+
delete_stack(cluster_stack_name)
|
105
117
|
end
|
106
118
|
|
107
119
|
def deploy_feature!
|
@@ -132,6 +144,13 @@ class Release
|
|
132
144
|
|
133
145
|
deploy_id = Digest::MD5.hexdigest(prima_branch[:name] + backoffice_branch[:name] + urania_branch[:name] + socket_branch[:name] + pamela_branch[:name])
|
134
146
|
|
147
|
+
cluster_stack_name = "ecs-cluster-qa-#{deploy_id}"
|
148
|
+
create_cluster_stack(cluster_stack_name, tags) unless stack_exists?(cluster_stack_name)
|
149
|
+
wait_for_stack_ready(cluster_stack_name) unless stack_ready?(cluster_stack_name)
|
150
|
+
|
151
|
+
resp = @cf.describe_stack_resource({stack_name: cluster_stack_name, logical_resource_id: 'ECSCluster'})
|
152
|
+
@ecs_cluster_name = resp.stack_resource_detail.physical_resource_id
|
153
|
+
|
135
154
|
asg_stack_name = "ecs-asg-allinone-qa-#{deploy_id}"
|
136
155
|
create_asg_stack(asg_stack_name, tags) unless stack_exists?(asg_stack_name)
|
137
156
|
|
@@ -141,6 +160,10 @@ class Release
|
|
141
160
|
{
|
142
161
|
parameter_key: "Environment",
|
143
162
|
parameter_value: "qa"
|
163
|
+
},
|
164
|
+
{
|
165
|
+
parameter_key: "ECSClusterName",
|
166
|
+
parameter_value: @ecs_cluster_name
|
144
167
|
}
|
145
168
|
]
|
146
169
|
create_stack(stack_name_db, stack_body, parameters, tags) unless stack_exists?(stack_name_db)
|
@@ -168,6 +191,10 @@ class Release
|
|
168
191
|
{
|
169
192
|
parameter_key: "TaskDesiredCount",
|
170
193
|
parameter_value: "1"
|
194
|
+
},
|
195
|
+
{
|
196
|
+
parameter_key: "ECSClusterName",
|
197
|
+
parameter_value: @ecs_cluster_name
|
171
198
|
}
|
172
199
|
]
|
173
200
|
if stack_exists?(stack_name_web)
|
@@ -187,6 +214,10 @@ class Release
|
|
187
214
|
{
|
188
215
|
parameter_key: "ReleaseVersion",
|
189
216
|
parameter_value: prima_branch[:revision]
|
217
|
+
},
|
218
|
+
{
|
219
|
+
parameter_key: "ECSClusterName",
|
220
|
+
parameter_value: @ecs_cluster_name
|
190
221
|
}
|
191
222
|
]
|
192
223
|
if stack_exists?(stack_name_consumer)
|
@@ -210,6 +241,10 @@ class Release
|
|
210
241
|
{
|
211
242
|
parameter_key: "TaskDesiredCount",
|
212
243
|
parameter_value: "1"
|
244
|
+
},
|
245
|
+
{
|
246
|
+
parameter_key: "ECSClusterName",
|
247
|
+
parameter_value: @ecs_cluster_name
|
213
248
|
}
|
214
249
|
]
|
215
250
|
if stack_exists?(stack_name_urania)
|
@@ -233,6 +268,10 @@ class Release
|
|
233
268
|
{
|
234
269
|
parameter_key: "TaskDesiredCount",
|
235
270
|
parameter_value: "1"
|
271
|
+
},
|
272
|
+
{
|
273
|
+
parameter_key: "ECSClusterName",
|
274
|
+
parameter_value: @ecs_cluster_name
|
236
275
|
}
|
237
276
|
]
|
238
277
|
if stack_exists?(stack_name_backoffice)
|
@@ -350,7 +389,7 @@ class Release
|
|
350
389
|
logical_resource_id: logical_resource_id
|
351
390
|
})
|
352
391
|
resp = @ecs.update_service({
|
353
|
-
cluster: @
|
392
|
+
cluster: @ecs_cluster_name,
|
354
393
|
service: resp.stack_resource_detail.physical_resource_id,
|
355
394
|
deployment_configuration: {
|
356
395
|
minimum_healthy_percent: 0,
|
@@ -413,7 +452,7 @@ class Release
|
|
413
452
|
[
|
414
453
|
"docker-compose build workers",
|
415
454
|
"cd ../../ && docker run -e GIT_DIR=$PWD -v $PWD:/usr/app/src -w /usr/app/src/projects/backoffice blinkmobile/bower install --allow-root",
|
416
|
-
"docker run -v $PWD:/code -w /code -e PHANTOMJS_BIN=/code/node_modules/
|
455
|
+
"docker run -v $PWD:/code -w /code -e PHANTOMJS_BIN=/code/node_modules/phantomjs/lib/phantom/bin/phantomjs --entrypoint /bin/bash backoffice_workers '-c' 'sed -i \"s/web-qa-url/#{web_qa_host}/g\" Gruntfile.js && npm install && grunt qa'",
|
417
456
|
"sudo chown -R `whoami` ."
|
418
457
|
].each do |cmd|
|
419
458
|
output "Eseguo #{cmd}".yellow
|
@@ -524,6 +563,8 @@ class Release
|
|
524
563
|
end
|
525
564
|
|
526
565
|
def create_asg_stack(stack_name, tags = [])
|
566
|
+
pp @ecs_cluster_name
|
567
|
+
|
527
568
|
stack_body = IO.read('cloudformation/stacks/asg/ecs-asg-allinone.json')
|
528
569
|
parameters = [
|
529
570
|
{
|
@@ -533,14 +574,23 @@ class Release
|
|
533
574
|
{
|
534
575
|
parameter_key: "InstanceType",
|
535
576
|
parameter_value: "t2.large"
|
577
|
+
},
|
578
|
+
{
|
579
|
+
parameter_key: "ECSClusterName",
|
580
|
+
parameter_value: @ecs_cluster_name
|
536
581
|
}
|
537
582
|
]
|
538
583
|
create_stack(stack_name, stack_body, parameters, tags)
|
539
584
|
end
|
540
585
|
|
586
|
+
def create_cluster_stack(stack_name, tags = [])
|
587
|
+
stack_body = IO.read('cloudformation/stacks/ecs-cluster.json')
|
588
|
+
create_stack(stack_name, stack_body, [], tags)
|
589
|
+
end
|
590
|
+
|
541
591
|
def import_dbs(ip_address)
|
542
592
|
resp = @ecs.run_task({
|
543
|
-
cluster: @
|
593
|
+
cluster: @ecs_cluster_name,
|
544
594
|
task_definition: @import_db_task,
|
545
595
|
overrides: {
|
546
596
|
container_overrides: [
|
@@ -561,7 +611,7 @@ class Release
|
|
561
611
|
stopped_at = nil
|
562
612
|
while stopped_at.nil?
|
563
613
|
resp = @ecs.describe_tasks({
|
564
|
-
cluster: @
|
614
|
+
cluster: @ecs_cluster_name,
|
565
615
|
tasks: [resp.tasks[0].task_arn]
|
566
616
|
})
|
567
617
|
stopped_at = resp.tasks[0].stopped_at
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prima-twig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matteo Giachino
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-05-02 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: twig
|