prima-twig 0.3.22 → 0.4.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 +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
|