prima-twig 0.22.0 → 0.23.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 +137 -30
- 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: 557c066a05b5846bcde31c11d683c36df91c9608
|
4
|
+
data.tar.gz: 10ed3de5540df2d21c630b3ffaae069d5bb124d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46e3e2ae5f4e5077095fd5b13bf9f6f227c778266cd9e69c8791532ff9fb22df4be9289ec51063a61bb7575efa476721fdaa7bcaff41e9b2ca0adf6abcd30164
|
7
|
+
data.tar.gz: 08955a4c3d75ae2d2dce8f80a242fc819a951c626aa790b2b716860c2f8bb68bc3eec0eaeb51e904f2494a4c386f770690490178fc0d538a6ecd99623c571e8e
|
data/bin/twig-feature
CHANGED
@@ -33,6 +33,7 @@ class Release
|
|
33
33
|
@dns_record_identifier = nil
|
34
34
|
@ecs_cluster_name = nil
|
35
35
|
@projects = {"prima" => {}, "backoffice" => {}, "urania" => {}, "ermes" => {}, "bburago" => {}, "hal9000" => {}, "fidaty" => {}}
|
36
|
+
@stack_name_alb = "ecs-alb-http-public-qa"
|
36
37
|
end
|
37
38
|
|
38
39
|
def execute! args
|
@@ -130,6 +131,7 @@ class Release
|
|
130
131
|
output "Attendo 60 secondi per poter eliminare il cluster ECS"
|
131
132
|
sleep 60
|
132
133
|
delete_stack(cluster_stack_name)
|
134
|
+
delete_stack(@stack_name_alb) if envs.length < 2
|
133
135
|
output "Finito!".green
|
134
136
|
end
|
135
137
|
|
@@ -211,6 +213,8 @@ class Release
|
|
211
213
|
create_cluster_stack(cluster_stack_name, tags) unless stack_exists?(cluster_stack_name)
|
212
214
|
wait_for_stack_ready(cluster_stack_name) unless stack_ready?(cluster_stack_name)
|
213
215
|
|
216
|
+
create_alb_stack(@stack_name_alb) unless stack_exists?(@stack_name_alb)
|
217
|
+
|
214
218
|
resp = @cf.describe_stack_resource({stack_name: cluster_stack_name, logical_resource_id: 'ECSCluster'})
|
215
219
|
@ecs_cluster_name = resp.stack_resource_detail.physical_resource_id
|
216
220
|
|
@@ -242,6 +246,8 @@ class Release
|
|
242
246
|
wait_for_stack_ready(stack_name_db) unless stack_ready?(stack_name_db)
|
243
247
|
import_dbs(ec2_ip_address(asg_stack_name)) unless stack_exists?("ecs-task-web-qa-#{deploy_id}")
|
244
248
|
|
249
|
+
wait_for_stack_ready(@stack_name_alb) unless stack_ready?(@stack_name_alb)
|
250
|
+
|
245
251
|
stack_name_web = "ecs-task-web-qa-#{deploy_id}"
|
246
252
|
git_checkout_version('prima', @projects["prima"][:revision])
|
247
253
|
stack_body = IO.read('projects/prima/app/cloudformation/tasks/web.yml')
|
@@ -264,11 +270,19 @@ class Release
|
|
264
270
|
},
|
265
271
|
{
|
266
272
|
parameter_key: "ALBShortName",
|
267
|
-
parameter_value: "
|
273
|
+
parameter_value: "web-qa-#{deploy_id}"[0..31]
|
268
274
|
},
|
269
275
|
{
|
270
276
|
parameter_key: "WebQaBaseHostname",
|
271
277
|
parameter_value: "#{@dns_record_identifier}.qa.colaster.com"
|
278
|
+
},
|
279
|
+
{
|
280
|
+
parameter_key: "HostnamePattern",
|
281
|
+
parameter_value: "ww*-#{@dns_record_identifier}.qa.colaster.com"
|
282
|
+
},
|
283
|
+
{
|
284
|
+
parameter_key: "HostnamePatternPriority",
|
285
|
+
parameter_value: hostname_pattern_priority()
|
272
286
|
}
|
273
287
|
]
|
274
288
|
if stack_exists?(stack_name_web)
|
@@ -302,7 +316,9 @@ class Release
|
|
302
316
|
|
303
317
|
stack_name_urania = "ecs-task-urania-qa-#{deploy_id}"
|
304
318
|
git_checkout_version('urania', @projects["urania"][:revision])
|
305
|
-
stack_body =
|
319
|
+
stack_body = YAML.load_file('projects/urania/deploy/task.yml')
|
320
|
+
stack_body['Resources']['ECSServiceUrania']['Properties'].reject!{ |k| ['LoadBalancers', 'Role'].include?(k) }
|
321
|
+
stack_body = stack_body.to_yaml
|
306
322
|
parameters = [
|
307
323
|
{
|
308
324
|
parameter_key: "Environment",
|
@@ -322,7 +338,15 @@ class Release
|
|
322
338
|
},
|
323
339
|
{
|
324
340
|
parameter_key: "ALBShortName",
|
325
|
-
parameter_value: "
|
341
|
+
parameter_value: "urania-qa-#{deploy_id}"[0..31]
|
342
|
+
},
|
343
|
+
{
|
344
|
+
parameter_key: "HostnamePattern",
|
345
|
+
parameter_value: "urania-#{@dns_record_identifier}.qa.colaster.com"
|
346
|
+
},
|
347
|
+
{
|
348
|
+
parameter_key: "HostnamePatternPriority",
|
349
|
+
parameter_value: hostname_pattern_priority()
|
326
350
|
}
|
327
351
|
]
|
328
352
|
if stack_exists?(stack_name_urania)
|
@@ -356,7 +380,9 @@ class Release
|
|
356
380
|
|
357
381
|
stack_name_bburago = "ecs-task-bburago-qa-#{deploy_id}"
|
358
382
|
git_checkout_version('bburago', @projects["bburago"][:revision])
|
359
|
-
stack_body =
|
383
|
+
stack_body = YAML.load_file('projects/bburago/deploy/task.yml')
|
384
|
+
stack_body['Resources']['ECSServiceBburago']['Properties'].reject!{ |k| ['LoadBalancers', 'Role'].include?(k) }
|
385
|
+
stack_body = stack_body.to_yaml
|
360
386
|
parameters = [
|
361
387
|
{
|
362
388
|
parameter_key: "Environment",
|
@@ -376,7 +402,15 @@ class Release
|
|
376
402
|
},
|
377
403
|
{
|
378
404
|
parameter_key: "ALBShortName",
|
379
|
-
parameter_value: "
|
405
|
+
parameter_value: "bburago-qa-#{deploy_id}"[0..31]
|
406
|
+
},
|
407
|
+
{
|
408
|
+
parameter_key: "HostnamePattern",
|
409
|
+
parameter_value: "bburago-#{@dns_record_identifier}.qa.colaster.com"
|
410
|
+
},
|
411
|
+
{
|
412
|
+
parameter_key: "HostnamePatternPriority",
|
413
|
+
parameter_value: hostname_pattern_priority()
|
380
414
|
}
|
381
415
|
]
|
382
416
|
if stack_exists?(stack_name_bburago)
|
@@ -387,7 +421,9 @@ class Release
|
|
387
421
|
|
388
422
|
stack_name_hal9000 = "ecs-task-hal9000-qa-#{deploy_id}"
|
389
423
|
git_checkout_version('hal9000', @projects["hal9000"][:revision])
|
390
|
-
stack_body =
|
424
|
+
stack_body = YAML.load_file('projects/hal9000/deploy/task.yml')
|
425
|
+
stack_body['Resources']['ECSServiceHal9000']['Properties'].reject!{ |k| ['LoadBalancers', 'Role'].include?(k) }
|
426
|
+
stack_body = stack_body.to_yaml
|
391
427
|
parameters = [
|
392
428
|
{
|
393
429
|
parameter_key: "Environment",
|
@@ -407,7 +443,15 @@ class Release
|
|
407
443
|
},
|
408
444
|
{
|
409
445
|
parameter_key: "ALBShortName",
|
410
|
-
parameter_value: "
|
446
|
+
parameter_value: "hal9000-qa-#{deploy_id}"[0..31]
|
447
|
+
},
|
448
|
+
{
|
449
|
+
parameter_key: "HostnamePattern",
|
450
|
+
parameter_value: "hal9000-#{@dns_record_identifier}.qa.colaster.com"
|
451
|
+
},
|
452
|
+
{
|
453
|
+
parameter_key: "HostnamePatternPriority",
|
454
|
+
parameter_value: hostname_pattern_priority()
|
411
455
|
}
|
412
456
|
]
|
413
457
|
if stack_exists?(stack_name_hal9000)
|
@@ -418,7 +462,9 @@ class Release
|
|
418
462
|
|
419
463
|
stack_name_fidaty = "ecs-task-fidaty-qa-#{deploy_id}"
|
420
464
|
git_checkout_version('fidaty', @projects["fidaty"][:revision])
|
421
|
-
stack_body =
|
465
|
+
stack_body = YAML.load_file('projects/fidaty/deploy/task.yml')
|
466
|
+
stack_body['Resources']['ECSServiceFidaty']['Properties'].reject!{ |k| ['LoadBalancers', 'Role'].include?(k) }
|
467
|
+
stack_body = stack_body.to_yaml
|
422
468
|
parameters = [
|
423
469
|
{
|
424
470
|
parameter_key: "Environment",
|
@@ -438,7 +484,15 @@ class Release
|
|
438
484
|
},
|
439
485
|
{
|
440
486
|
parameter_key: "ALBShortName",
|
441
|
-
parameter_value: "
|
487
|
+
parameter_value: "fidaty-qa-#{deploy_id}"[0..31]
|
488
|
+
},
|
489
|
+
{
|
490
|
+
parameter_key: "HostnamePattern",
|
491
|
+
parameter_value: "fidaty-#{@dns_record_identifier}.qa.colaster.com"
|
492
|
+
},
|
493
|
+
{
|
494
|
+
parameter_key: "HostnamePatternPriority",
|
495
|
+
parameter_value: hostname_pattern_priority()
|
442
496
|
}
|
443
497
|
]
|
444
498
|
if stack_exists?(stack_name_fidaty)
|
@@ -469,7 +523,15 @@ class Release
|
|
469
523
|
},
|
470
524
|
{
|
471
525
|
parameter_key: "ALBShortName",
|
472
|
-
parameter_value: "
|
526
|
+
parameter_value: "backoffice-qa-#{deploy_id}"[0..31]
|
527
|
+
},
|
528
|
+
{
|
529
|
+
parameter_key: "HostnamePattern",
|
530
|
+
parameter_value: "backoffice-#{@dns_record_identifier}.qa.colaster.com"
|
531
|
+
},
|
532
|
+
{
|
533
|
+
parameter_key: "HostnamePatternPriority",
|
534
|
+
parameter_value: hostname_pattern_priority()
|
473
535
|
}
|
474
536
|
]
|
475
537
|
if stack_exists?(stack_name_backoffice)
|
@@ -505,27 +567,27 @@ class Release
|
|
505
567
|
},
|
506
568
|
{
|
507
569
|
parameter_key: "PrimaElbHostname",
|
508
|
-
parameter_value: get_alb_host(
|
570
|
+
parameter_value: get_alb_host(@stack_name_alb)
|
509
571
|
},
|
510
572
|
{
|
511
573
|
parameter_key: "BackofficeElbHostname",
|
512
|
-
parameter_value: get_alb_host(
|
574
|
+
parameter_value: get_alb_host(@stack_name_alb)
|
513
575
|
},
|
514
576
|
{
|
515
|
-
parameter_key: "
|
516
|
-
parameter_value:
|
577
|
+
parameter_key: "UraniaIp",
|
578
|
+
parameter_value: ec2_ip_address(asg_stack_name)
|
517
579
|
},
|
518
580
|
{
|
519
|
-
parameter_key: "
|
520
|
-
parameter_value:
|
581
|
+
parameter_key: "BburagoIp",
|
582
|
+
parameter_value: ec2_ip_address(asg_stack_name)
|
521
583
|
},
|
522
584
|
{
|
523
|
-
parameter_key: "
|
524
|
-
parameter_value:
|
585
|
+
parameter_key: "Hal9000Ip",
|
586
|
+
parameter_value: ec2_ip_address(asg_stack_name)
|
525
587
|
},
|
526
588
|
{
|
527
|
-
parameter_key: "
|
528
|
-
parameter_value:
|
589
|
+
parameter_key: "FidatyIp",
|
590
|
+
parameter_value: ec2_ip_address(asg_stack_name)
|
529
591
|
}
|
530
592
|
]
|
531
593
|
create_stack(stack_name_route53, stack_body, parameters, tags) unless stack_exists?(stack_name_route53)
|
@@ -539,13 +601,13 @@ class Release
|
|
539
601
|
|
540
602
|
wait_for_stack_ready(stack_name_route53) unless stack_ready?(stack_name_route53)
|
541
603
|
|
542
|
-
output "Prima url:
|
543
|
-
output "Prima RI url:
|
544
|
-
output "
|
545
|
-
output "
|
546
|
-
output "Bburago url:
|
547
|
-
output "Hal9000 url:
|
548
|
-
output "Fidaty url:
|
604
|
+
output "Prima url: https://#{prima_hostname}\n".cyan
|
605
|
+
output "Prima RI url: https://#{prima_hostname.sub("www", "wwwri")}\n".cyan
|
606
|
+
output "Backoffice url: https://#{backoffice_hostname}\n".cyan
|
607
|
+
output "Urania url: http://#{urania_hostname}:81\n".cyan
|
608
|
+
output "Bburago url: http://#{bburago_hostname}:83\n".cyan
|
609
|
+
output "Hal9000 url: http://#{hal9000_hostname}:10031\n".cyan
|
610
|
+
output "Fidaty url: http://#{fidaty_hostname}:10021\n".cyan
|
549
611
|
output "SSH connection: ssh ec2-user@#{ec2_ip_address(asg_stack_name)} -i ~/.ssh/ecs-cluster-qa.pem".cyan
|
550
612
|
output "Deploy effettuato, everything is awesome!\n".green
|
551
613
|
end
|
@@ -596,6 +658,8 @@ class Release
|
|
596
658
|
logical_resource_id = 'EcsApplicationLoadBalancerInternal'
|
597
659
|
when stack_name.include?('fidaty')
|
598
660
|
logical_resource_id = 'EcsApplicationLoadBalancerInternal'
|
661
|
+
when stack_name.include?('alb-http-public')
|
662
|
+
logical_resource_id = 'EcsApplicationLoadBalancerPublic'
|
599
663
|
end
|
600
664
|
resp = @cf.describe_stack_resource({
|
601
665
|
stack_name: stack_name,
|
@@ -676,6 +740,8 @@ class Release
|
|
676
740
|
|
677
741
|
Dir.chdir 'projects/urania'
|
678
742
|
|
743
|
+
stop_unless is_branch_compatible_with_current_twig_version?("urania"), "Il tuo branch del progetto urania non e' compatibile con questa versione di twig, devi REBASARE DA MASTER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!".red
|
744
|
+
|
679
745
|
[
|
680
746
|
"docker-compose build web",
|
681
747
|
"docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh urania_web \
|
@@ -744,6 +810,8 @@ class Release
|
|
744
810
|
|
745
811
|
Dir.chdir 'projects/bburago'
|
746
812
|
|
813
|
+
stop_unless is_branch_compatible_with_current_twig_version?("bburago"), "Il tuo branch del progetto bburago non e' compatibile con questa versione di twig, devi REBASARE DA MASTER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!".red
|
814
|
+
|
747
815
|
[
|
748
816
|
"docker-compose build web",
|
749
817
|
"docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh bburago_web \
|
@@ -778,6 +846,8 @@ class Release
|
|
778
846
|
|
779
847
|
Dir.chdir 'projects/hal9000'
|
780
848
|
|
849
|
+
stop_unless is_branch_compatible_with_current_twig_version?("hal9000"), "Il tuo branch del progetto hal9000 non e' compatibile con questa versione di twig, devi REBASARE DA MASTER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!".red
|
850
|
+
|
781
851
|
[
|
782
852
|
"docker-compose build web",
|
783
853
|
"docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh hal9000_web \
|
@@ -815,6 +885,8 @@ class Release
|
|
815
885
|
|
816
886
|
Dir.chdir 'projects/fidaty'
|
817
887
|
|
888
|
+
stop_unless is_branch_compatible_with_current_twig_version?("fidaty"), "Il tuo branch del progetto fidaty non e' compatibile con questa versione di twig, devi REBASARE DA MASTER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!".red
|
889
|
+
|
818
890
|
stack_name_web = "ecs-task-web-qa-notneeded"
|
819
891
|
web_qa_host = get_route53_hostname(stack_name_web)
|
820
892
|
|
@@ -854,6 +926,8 @@ class Release
|
|
854
926
|
|
855
927
|
Dir.chdir 'projects/backoffice'
|
856
928
|
|
929
|
+
stop_unless is_branch_compatible_with_current_twig_version?("backoffice"), "Il tuo branch del progetto backoffice non e' compatibile con questa versione di twig, devi REBASARE DA MASTER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!".red
|
930
|
+
|
857
931
|
['node_modules'].each do |dir|
|
858
932
|
unless File.directory?(dir)
|
859
933
|
if File.directory?("../../../backoffice/#{dir}")
|
@@ -868,6 +942,7 @@ class Release
|
|
868
942
|
|
869
943
|
[
|
870
944
|
"docker-compose build workers",
|
945
|
+
"rm -rf src/ && git checkout -- .",
|
871
946
|
"cd ../../ && docker run -e GIT_DIR=$PWD -v $PWD:/usr/app/src -w /usr/app/src/projects/backoffice blinkmobile/bower install --allow-root",
|
872
947
|
"docker run -v $PWD:/code -w /code -e PHANTOMJS_BIN=/code/node_modules/grunt-selenium-webdriver/node_modules/phantomjs/bin/phantomjs --entrypoint /bin/bash backoffice_workers '-c' 'sed -i \"s/web-qa-url/#{web_qa_host}/g\" Gruntfile.js && sed -i \"s/web-qa-ri-url/#{webri_qa_host}/g\" Gruntfile.js && npm install && grunt qa'",
|
873
948
|
"sudo chown -R `whoami` ."
|
@@ -898,7 +973,7 @@ class Release
|
|
898
973
|
|
899
974
|
Dir.chdir 'projects/prima'
|
900
975
|
|
901
|
-
stop_unless is_branch_compatible_with_current_twig_version
|
976
|
+
stop_unless is_branch_compatible_with_current_twig_version?("prima"), "Il tuo branch del progetto prima non e' compatibile con questa versione di twig, devi REBASARE DA MASTER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!".red
|
902
977
|
|
903
978
|
['vendor'].each do |dir|
|
904
979
|
unless File.directory?(dir)
|
@@ -1004,6 +1079,21 @@ class Release
|
|
1004
1079
|
create_stack(stack_name, stack_body, [], tags)
|
1005
1080
|
end
|
1006
1081
|
|
1082
|
+
def create_alb_stack(stack_name)
|
1083
|
+
stack_body = IO.read('cloudformation/stacks/alb/ecs-alb-public.yml')
|
1084
|
+
parameters = [
|
1085
|
+
{
|
1086
|
+
parameter_key: "Environment",
|
1087
|
+
parameter_value: "qa"
|
1088
|
+
},
|
1089
|
+
{
|
1090
|
+
parameter_key: "Role",
|
1091
|
+
parameter_value: "http"
|
1092
|
+
}
|
1093
|
+
]
|
1094
|
+
create_stack(stack_name, stack_body, parameters)
|
1095
|
+
end
|
1096
|
+
|
1007
1097
|
def import_dbs(ip_address)
|
1008
1098
|
resp = @ecs.run_task({
|
1009
1099
|
cluster: @ecs_cluster_name,
|
@@ -1152,8 +1242,21 @@ class Release
|
|
1152
1242
|
{ name: name, revision: revision[0..14] }
|
1153
1243
|
end
|
1154
1244
|
|
1155
|
-
def is_branch_compatible_with_current_twig_version?
|
1156
|
-
|
1245
|
+
def is_branch_compatible_with_current_twig_version?(project)
|
1246
|
+
case
|
1247
|
+
when project == 'prima'
|
1248
|
+
File.readlines("bin/deploy").grep(/HOSTNAME_PATTERN/).size > 0
|
1249
|
+
when project == 'urania'
|
1250
|
+
File.readlines("deploy/deploy").grep(/HOSTNAME_PATTERN/).size > 0
|
1251
|
+
when project == 'backoffice'
|
1252
|
+
File.readlines("deploy/deploy.sh").grep(/HOSTNAME_PATTERN/).size > 0
|
1253
|
+
when project == 'bburago'
|
1254
|
+
File.readlines("deploy/deploy").grep(/HOSTNAME_PATTERN/).size > 0
|
1255
|
+
when project == 'hal9000'
|
1256
|
+
File.readlines("deploy/deploy").grep(/HOSTNAME_PATTERN/).size > 0
|
1257
|
+
when project == 'fidaty'
|
1258
|
+
File.readlines("deploy/deploy").grep(/HOSTNAME_PATTERN/).size > 0
|
1259
|
+
end
|
1157
1260
|
end
|
1158
1261
|
|
1159
1262
|
def get_stacks()
|
@@ -1167,6 +1270,10 @@ class Release
|
|
1167
1270
|
return stack_list, envs
|
1168
1271
|
end
|
1169
1272
|
|
1273
|
+
def hostname_pattern_priority()
|
1274
|
+
(Time.now.to_i.to_s[-4..-1].to_i + Random.rand(40000)).to_s
|
1275
|
+
end
|
1276
|
+
|
1170
1277
|
def select_branches(project_name = nil)
|
1171
1278
|
output "Deploy feature menu"
|
1172
1279
|
if project_name.nil?
|
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.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matteo Giachino
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2017-
|
15
|
+
date: 2017-06-07 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: twig
|