prima-twig 0.59.2 → 0.59.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/bin/twig-feature +2 -211
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d55357225a9a27bfc68eed65238d3129674acef33a5803d1a62fc1a84b8d6c3
|
4
|
+
data.tar.gz: '08bef732687a6bd4637e6333f5214aaf5e23357df0fd9141f446e26a0dcff9f7'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 046dd7e54f2be82c6618fe475dbc6f63b2feef68e99299df054b3dab949794449286059661c8946b35b871c312c4ea2a07cacc42daae7cc8345070a89bb93a8c
|
7
|
+
data.tar.gz: a0122c459f688bbf3059eed4384a3249d0ac448a84ecf05416de93472d32adf04a249d9b22643a6ef66430809a33ab730dd51cff7567f75dba49da39273e57fb
|
data/bin/twig-feature
CHANGED
@@ -75,8 +75,6 @@ class Release
|
|
75
75
|
qainit_deploy_update!
|
76
76
|
elsif 'read' == args[1]
|
77
77
|
qainit_read_config! args[2]
|
78
|
-
elsif 'minimal' == args[1]
|
79
|
-
qainit_minimal_deploy! args[2]
|
80
78
|
else
|
81
79
|
if args[1]
|
82
80
|
select_branches(args[1..-1])
|
@@ -99,8 +97,6 @@ class Release
|
|
99
97
|
deploy_update!
|
100
98
|
elsif 'lock' == args[1]
|
101
99
|
deploy_lock!
|
102
|
-
elsif 'minimal' == args[1]
|
103
|
-
qainit_drone_minimal_deploy!
|
104
100
|
else
|
105
101
|
if args[1]
|
106
102
|
select_branches(args[1])
|
@@ -487,35 +483,6 @@ class Release
|
|
487
483
|
git checkout master`
|
488
484
|
end
|
489
485
|
|
490
|
-
def qainit_minimal_deploy!(project)
|
491
|
-
abort('L\'unico progetto permesso è prima') unless ['prima'].include? project
|
492
|
-
project_definition = choose_branch_to_deploy(project)
|
493
|
-
|
494
|
-
`git checkout master && git pull && git remote prune origin`
|
495
|
-
|
496
|
-
default_name = project_definition[:name]
|
497
|
-
output "Inserisci la feature a cui si riferisce il QA: [#{default_name}]".cyan
|
498
|
-
feature_number = String(STDIN.gets.chomp)
|
499
|
-
feature_number = default_name if feature_number.empty?
|
500
|
-
|
501
|
-
if `git branch -l | grep #{feature_number}`.size > 0
|
502
|
-
`git checkout #{feature_number} && git pull`
|
503
|
-
else
|
504
|
-
`git checkout -b #{feature_number}`
|
505
|
-
end
|
506
|
-
|
507
|
-
# così recupero le informazioni sul branch, poi vado a scrivere il file branch_names con una sola riga
|
508
|
-
branch = {'project' => { 'name' => project_definition[:name], 'revision' => project_definition['revision'], 'default_branch' => project_definition[:default_branch]}}
|
509
|
-
|
510
|
-
File.open('branch_names', 'w') { |file| file.write(JSON.generate(branch)) }
|
511
|
-
|
512
|
-
`git add projects && \
|
513
|
-
git add branch_names && \
|
514
|
-
git commit -m 'minimal_#{feature_number}' && \
|
515
|
-
git push --set-upstream origin #{feature_number} && \
|
516
|
-
git checkout master`
|
517
|
-
end
|
518
|
-
|
519
486
|
def qainit_deploy_update!
|
520
487
|
`git checkout master && git pull`
|
521
488
|
# cancelliamo tutti i branch che non sono più sul repo remoto
|
@@ -554,11 +521,7 @@ class Release
|
|
554
521
|
|
555
522
|
File.open('branch_names', 'w') { |file| file.write(JSON.generate(@projects)) }
|
556
523
|
|
557
|
-
|
558
|
-
`git commit -am 'minimal_update'`
|
559
|
-
else
|
560
|
-
`git commit -am 'update'`
|
561
|
-
end
|
524
|
+
`git commit -am 'update'`
|
562
525
|
`git push && git checkout master`
|
563
526
|
end
|
564
527
|
|
@@ -666,9 +629,6 @@ class Release
|
|
666
629
|
when 'shutdown'
|
667
630
|
output 'Shutting down'.green
|
668
631
|
qainit_drone_shutdown!
|
669
|
-
when 'minimal'
|
670
|
-
output 'Starting minimal deploy'.green
|
671
|
-
qainit_drone_minimal_deploy!
|
672
632
|
else
|
673
633
|
output 'Starting standard deploy'.green
|
674
634
|
deploy_feature!
|
@@ -680,7 +640,6 @@ class Release
|
|
680
640
|
`mkdir -p cloudformation/stacks/task cloudformation/stacks/route53 cloudformation/stacks/asg cloudformation/stacks/elb`
|
681
641
|
@s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/task/db.yml', response_target: 'cloudformation/stacks/task/db.yml'})
|
682
642
|
@s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/route53/qa.yml', response_target: 'cloudformation/stacks/route53/qa.yml'})
|
683
|
-
@s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/route53/minimal_qa.yml', response_target: 'cloudformation/stacks/route53/minimal_qa.yml'})
|
684
643
|
@s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/asg/ecs-asg-allinone.yml', response_target: 'cloudformation/stacks/asg/ecs-asg-allinone.yml'})
|
685
644
|
@s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/ecs-cluster.yml', response_target: 'cloudformation/stacks/ecs-cluster.yml'})
|
686
645
|
@s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/elb/alb-public-qa.yml', response_target: 'cloudformation/stacks/elb/alb-public-qa.yml'})
|
@@ -695,173 +654,6 @@ class Release
|
|
695
654
|
end
|
696
655
|
end
|
697
656
|
|
698
|
-
def qainit_drone_minimal_deploy!
|
699
|
-
# tenere solo il project da deployare (l'unico project è prima)
|
700
|
-
@ami_id = get_ami_id("ecs-fleet-allinone-staging")
|
701
|
-
project = ''
|
702
|
-
@projects.each_key do |project_key|
|
703
|
-
if @projects[project_key]['revision']
|
704
|
-
project = project_key
|
705
|
-
git_checkout_version(project_key, @projects[project_key]['revision'])
|
706
|
-
end
|
707
|
-
end
|
708
|
-
deploy_id = get_deploy_id
|
709
|
-
|
710
|
-
@git_branch = ENV['DRONE_BRANCH']
|
711
|
-
@dns_record_identifier = deploy_id
|
712
|
-
hostname_pattern_priority = hostname_pattern_priority()
|
713
|
-
tags = [
|
714
|
-
{
|
715
|
-
key: "qainit",
|
716
|
-
value: @git_branch
|
717
|
-
},
|
718
|
-
{
|
719
|
-
key: project,
|
720
|
-
value: @projects[project]['name']
|
721
|
-
},
|
722
|
-
{
|
723
|
-
key: "hostname_pattern_priority",
|
724
|
-
value: hostname_pattern_priority
|
725
|
-
}
|
726
|
-
]
|
727
|
-
|
728
|
-
cluster_stack_name = "ecs-cluster-qa-#{deploy_id}"
|
729
|
-
|
730
|
-
if stack_exists?(cluster_stack_name)
|
731
|
-
tags = get_stack_tags(cluster_stack_name)
|
732
|
-
hostname_pattern_priority = tags.detect do |tag|
|
733
|
-
tag.key == 'hostname_pattern_priority'
|
734
|
-
end.value
|
735
|
-
end
|
736
|
-
|
737
|
-
stack_name_alb = @base_stack_name_alb + deploy_id[0..5]
|
738
|
-
stack_name_alb_ws = @base_stack_name_alb_ws + deploy_id[0..5]
|
739
|
-
|
740
|
-
create_cluster_stack(cluster_stack_name, tags) unless stack_exists?(cluster_stack_name)
|
741
|
-
wait_for_stack_ready(cluster_stack_name) unless stack_ready?(cluster_stack_name)
|
742
|
-
|
743
|
-
create_alb_stack(stack_name_alb, "http", deploy_id, 'qa-minimal') unless stack_exists?(stack_name_alb)
|
744
|
-
create_alb_stack(stack_name_alb_ws, "websocket", deploy_id, 'qa-minimal') unless stack_exists?(stack_name_alb_ws)
|
745
|
-
|
746
|
-
resp = describe_stack_resource(cluster_stack_name, 'ECSCluster')
|
747
|
-
@ecs_cluster_name = resp.stack_resource_detail.physical_resource_id
|
748
|
-
|
749
|
-
asg_stack_name = "ecs-asg-allinone-qa-#{deploy_id}"
|
750
|
-
create_asg_stack(asg_stack_name, tags) unless stack_exists?(asg_stack_name)
|
751
|
-
|
752
|
-
deploy_id = get_deploy_id
|
753
|
-
create_pyxis_artifact(@projects["pyxis-npm"]['revision'], deploy_id)
|
754
|
-
create_prima_artifact(@projects["prima"]['revision'], @projects["prima"]['name'], deploy_id, true) unless artifact_exists?('prima-artifacts-encrypted', "prima/#{@projects["prima"]['revision']}.tar.gz")
|
755
|
-
|
756
|
-
wait_for_stack_ready(stack_name_alb) unless stack_ready?(stack_name_alb)
|
757
|
-
wait_for_stack_ready(stack_name_alb_ws) unless stack_ready?(stack_name_alb_ws)
|
758
|
-
|
759
|
-
stack_name_route53 = "ecs-route53-qa-#{deploy_id}"
|
760
|
-
stack_body = IO.read('cloudformation/stacks/route53/minimal_qa.yml')
|
761
|
-
parameters = [
|
762
|
-
{
|
763
|
-
parameter_key: "DnsRecordIdentifier",
|
764
|
-
parameter_value: @dns_record_identifier
|
765
|
-
},
|
766
|
-
{
|
767
|
-
parameter_key: "PrimaElbHostname",
|
768
|
-
parameter_value: get_alb_host(stack_name_alb)
|
769
|
-
},
|
770
|
-
{
|
771
|
-
parameter_key: 'CrashElbHostname',
|
772
|
-
parameter_value: get_alb_host(stack_name_alb_ws)
|
773
|
-
}
|
774
|
-
]
|
775
|
-
|
776
|
-
create_stack(stack_name_route53, stack_body, parameters, tags, @cf_role) unless stack_exists?(stack_name_route53)
|
777
|
-
wait_for_stack_ready(stack_name_route53) unless stack_ready?(stack_name_route53)
|
778
|
-
|
779
|
-
stack_name_web = "ecs-task-web-qa-#{deploy_id}"
|
780
|
-
git_checkout_version('prima', @projects["prima"]['revision'])
|
781
|
-
stack_body = IO.read('projects/prima/app/cloudformation/tasks/web.yml')
|
782
|
-
parameters = [
|
783
|
-
{
|
784
|
-
parameter_key: "Environment",
|
785
|
-
parameter_value: "qa-minimal"
|
786
|
-
},
|
787
|
-
{
|
788
|
-
parameter_key: "ReleaseVersion",
|
789
|
-
parameter_value: "#{@projects["prima"]['revision']}"
|
790
|
-
},
|
791
|
-
{
|
792
|
-
parameter_key: "TaskDesiredCount",
|
793
|
-
parameter_value: "1"
|
794
|
-
},
|
795
|
-
{
|
796
|
-
parameter_key: "ECSClusterName",
|
797
|
-
parameter_value: @ecs_cluster_name
|
798
|
-
},
|
799
|
-
{
|
800
|
-
parameter_key: "ALBShortName",
|
801
|
-
parameter_value: "web-qa-#{deploy_id}"[0..27]
|
802
|
-
},
|
803
|
-
{
|
804
|
-
parameter_key: "WebQaBaseHostname",
|
805
|
-
parameter_value: "#{@dns_record_identifier}.qa.colaster.com"
|
806
|
-
},
|
807
|
-
{
|
808
|
-
parameter_key: "HostnamePattern",
|
809
|
-
parameter_value: "ww*-#{@dns_record_identifier}.qa.colaster.com"
|
810
|
-
},
|
811
|
-
{
|
812
|
-
parameter_key: "HostnamePatternPriority",
|
813
|
-
parameter_value: hostname_pattern_priority
|
814
|
-
},
|
815
|
-
{
|
816
|
-
parameter_key: "HostnamePatternAggregatorPriority",
|
817
|
-
parameter_value: (hostname_pattern_priority.to_i + 1).to_s
|
818
|
-
},
|
819
|
-
{
|
820
|
-
parameter_key: "EnvHash",
|
821
|
-
parameter_value: deploy_id
|
822
|
-
},
|
823
|
-
{
|
824
|
-
parameter_key: "AssangeHostname",
|
825
|
-
parameter_value: "assange-#{@dns_record_identifier}.qa.colaster.com"
|
826
|
-
},
|
827
|
-
{
|
828
|
-
parameter_key: "BackofficeHostname",
|
829
|
-
parameter_value: "backoffice-#{@dns_record_identifier}.qa.colaster.com"
|
830
|
-
},
|
831
|
-
{
|
832
|
-
parameter_key: "WebHostname",
|
833
|
-
parameter_value: "www-#{@dns_record_identifier}.qa.colaster.com"
|
834
|
-
},
|
835
|
-
{
|
836
|
-
parameter_key: "FePrimaDomain",
|
837
|
-
parameter_value: "www-#{@dns_record_identifier}.qa.colaster.com"
|
838
|
-
},
|
839
|
-
{
|
840
|
-
parameter_key: "HostnamePattern",
|
841
|
-
parameter_value: "www-#{@dns_record_identifier}.qa.colaster.com"
|
842
|
-
}
|
843
|
-
]
|
844
|
-
if stack_exists?(stack_name_web)
|
845
|
-
cur_version = get_currently_deployed_version(stack_name_web)
|
846
|
-
update_stack(stack_name_web, stack_body, parameters, tags, @cf_role) unless cur_version.include?(@projects["prima"]['revision'])
|
847
|
-
else
|
848
|
-
create_stack(stack_name_web, stack_body, parameters, tags, @cf_role)
|
849
|
-
end
|
850
|
-
wait_for_stack_ready(stack_name_web) unless stack_ready?(stack_name_web)
|
851
|
-
update_service_defaults(stack_name_web)
|
852
|
-
prima_hostname = get_route53_hostname(stack_name_web)
|
853
|
-
|
854
|
-
projects_text = "
|
855
|
-
> Prima url: https://#{prima_hostname}
|
856
|
-
> SSH connection: ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no githubUsername@#{ec2_ip_address(asg_stack_name)}\n"
|
857
|
-
|
858
|
-
output projects_text.cyan
|
859
|
-
output "Deploy effettuato, everything is awesome!\n".green
|
860
|
-
if @qainit
|
861
|
-
qainit_write_output(projects_text, 'Indirizzi scritti su ')
|
862
|
-
end
|
863
|
-
end
|
864
|
-
|
865
657
|
def deploy_feature!
|
866
658
|
`git pull && git submodule init && git submodule update`
|
867
659
|
@ami_id = get_ami_id("ecs-fleet-allinone-staging")
|
@@ -2577,7 +2369,7 @@ class Release
|
|
2577
2369
|
Dir.chdir '../../'
|
2578
2370
|
end
|
2579
2371
|
|
2580
|
-
def create_prima_artifact(revision, branch_name, deploy_id
|
2372
|
+
def create_prima_artifact(revision, branch_name, deploy_id)
|
2581
2373
|
output "Preparo l'artifact prima .zip\n".yellow
|
2582
2374
|
|
2583
2375
|
git_checkout_version('prima', revision)
|
@@ -3178,7 +2970,6 @@ Description
|
|
3178
2970
|
finish finishes the feature by merging to dev and master
|
3179
2971
|
qainit deploys a new environment with selected branches from every project
|
3180
2972
|
qainit $PROJECT_NAME deploys a new environment allowing to selected a branch from the input project (everything else is master)
|
3181
|
-
qainit minimal prima deploys a new copy of prima project, using staging microservices and database
|
3182
2973
|
qainit shutdown deletes a specific qa environment
|
3183
2974
|
|
3184
2975
|
Available only to devops (from artemide)
|
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.59.
|
4
|
+
version: 0.59.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matteo Giachino
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2019-
|
17
|
+
date: 2019-12-13 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: aws-sdk
|
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
214
|
- !ruby/object:Gem::Version
|
215
215
|
version: '0'
|
216
216
|
requirements: []
|
217
|
-
rubygems_version: 3.0.
|
217
|
+
rubygems_version: 3.0.1
|
218
218
|
signing_key:
|
219
219
|
specification_version: 4
|
220
220
|
summary: The Prima twig toolbelt
|