prima-twig 0.59.2 → 0.59.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/twig-feature +2 -211
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2abda8e5271eec5c976b6237737265ebc0d731a826752820bc20fe44e20c4df3
4
- data.tar.gz: 213b7bdca8578bc3670783246419ddbc6906b19138d2f99eccc45aeceb50db7c
3
+ metadata.gz: 2d55357225a9a27bfc68eed65238d3129674acef33a5803d1a62fc1a84b8d6c3
4
+ data.tar.gz: '08bef732687a6bd4637e6333f5214aaf5e23357df0fd9141f446e26a0dcff9f7'
5
5
  SHA512:
6
- metadata.gz: b14b4e65cdd4774cec9d696e781cedede149bc3802c6d20448f46b2658f5a68de821101df1db4d4c284c383bc42224e7b706862e04c9fe677790c686ed0e2d47
7
- data.tar.gz: d3e796bf5b63ea87da3f2d5c7d5360aacdb64340e6d86247d1b08c42e3bba2a586a6464c418c2a9f89a04930ce20432682d9f2142b47d389fcc6f51c29a285d9
6
+ metadata.gz: 046dd7e54f2be82c6618fe475dbc6f63b2feef68e99299df054b3dab949794449286059661c8946b35b871c312c4ea2a07cacc42daae7cc8345070a89bb93a8c
7
+ data.tar.gz: a0122c459f688bbf3059eed4384a3249d0ac448a84ecf05416de93472d32adf04a249d9b22643a6ef66430809a33ab730dd51cff7567f75dba49da39273e57fb
@@ -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
- if `git log -1` =~ /minimal_/
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, minimal = false)
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.2
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-11-26 00:00:00.000000000 Z
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.3
217
+ rubygems_version: 3.0.1
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: The Prima twig toolbelt