prima-twig 0.38.3 → 0.39.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/bin/twig-feature +308 -59
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: de22a45b28f8be6eea8717ce6bc7313486a6c20b
|
4
|
+
data.tar.gz: bd93c0683872852f9bdd179f92c18ded8668c29b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de91cbbf78cf375cd870f3b79d018fad8a6a40abe5dea223c073be3784d332b6aa44073344226a541e4a5a9ac4455436bc4266278c6dc0b78d1025085b7f810c
|
7
|
+
data.tar.gz: 7bcb97c3c706cc4186fdd9ef7364fb285d643d5b11acbc89280c3f5fa735baa31273f56f6a17cba99d3beaf4f59a7c0248685f8dd66eef192ece7f89d5a1ea9d
|
data/bin/twig-feature
CHANGED
@@ -66,6 +66,8 @@ class Release
|
|
66
66
|
qainit_deploy_update!
|
67
67
|
elsif 'read' == args[1]
|
68
68
|
qainit_read_config! args[2]
|
69
|
+
elsif 'minimal' == args[1]
|
70
|
+
qainit_minimal_deploy! args[2]
|
69
71
|
else
|
70
72
|
if args[1]
|
71
73
|
select_branches(args[1])
|
@@ -82,6 +84,8 @@ class Release
|
|
82
84
|
deploy_update!
|
83
85
|
elsif 'lock' == args[1]
|
84
86
|
deploy_lock!
|
87
|
+
elsif 'minimal'
|
88
|
+
qainit_drone_minimal_deploy!
|
85
89
|
else
|
86
90
|
if args[1]
|
87
91
|
select_branches(args[1])
|
@@ -456,9 +460,40 @@ class Release
|
|
456
460
|
git checkout master`
|
457
461
|
end
|
458
462
|
|
459
|
-
def
|
463
|
+
def qainit_minimal_deploy!(project)
|
464
|
+
abort('Gli unici progetti permessi sono prima e crash') unless ['prima', 'crash'].include? project
|
465
|
+
project_definition = choose_branch_to_deploy(project)
|
466
|
+
|
460
467
|
`git checkout master && git pull && git remote prune origin`
|
461
|
-
|
468
|
+
|
469
|
+
default_name = get_default_name @projects
|
470
|
+
output "Inserisci la feature a cui si riferisce il QA: [#{default_name}]".cyan
|
471
|
+
feature_number = String(STDIN.gets.chomp)
|
472
|
+
feature_number = default_name if feature_number.empty?
|
473
|
+
|
474
|
+
if `git branch -l | grep #{feature_number}`.size > 0
|
475
|
+
`git checkout #{feature_number} && git pull`
|
476
|
+
else
|
477
|
+
`git checkout -b #{feature_number}`
|
478
|
+
end
|
479
|
+
|
480
|
+
# così recupero le informazioni sul branch, poi vado a scrivere il file branch_names con una sola riga
|
481
|
+
branch = "#{project}:#{project_definition[:name]}:#{project_definition[:revision]}:#{project_definition[:default_branch]}"
|
482
|
+
|
483
|
+
File.open('branch_names', 'w') { |file| file.write(branch) }
|
484
|
+
|
485
|
+
`git add projects && \
|
486
|
+
git add branch_names && \
|
487
|
+
git commit -m 'minimal_#{feature_number}' && \
|
488
|
+
git push --set-upstream origin #{feature_number} && \
|
489
|
+
git checkout master`
|
490
|
+
end
|
491
|
+
|
492
|
+
def qainit_deploy_update!
|
493
|
+
`git checkout master && git pull`
|
494
|
+
# cancelliamo tutti i branch che non sono più sul repo remoto
|
495
|
+
`git fetch -p && for branch in \`git branch -vv | grep ': gone]' | awk '{print $1}'\`; do git branch -D $branch; done`
|
496
|
+
# leggiamo i nomi dei branch superstiti
|
462
497
|
former_branches = `git branch -a | grep remotes/ | grep -v HEAD | sed 's/ remotes\\/origin\\///g'`.split "\n"
|
463
498
|
# stampiamo la lista
|
464
499
|
chosen_branch = choose do |menu|
|
@@ -589,8 +624,11 @@ class Release
|
|
589
624
|
end
|
590
625
|
get_s3_config_files
|
591
626
|
@qainit = true
|
592
|
-
|
627
|
+
case action
|
628
|
+
when 'shutdown'
|
593
629
|
qainit_drone_shutdown!
|
630
|
+
when 'minimal'
|
631
|
+
qainit_drone_minimal_deploy!
|
594
632
|
else
|
595
633
|
deploy_feature!
|
596
634
|
end
|
@@ -608,37 +646,208 @@ class Release
|
|
608
646
|
end
|
609
647
|
|
610
648
|
def calculate_deploy_id
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
@projects[
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
|
619
|
-
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
@projects[
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
649
|
+
hashable = ''
|
650
|
+
@projects.each_key do |project_key|
|
651
|
+
if @projects[project_key][:name]
|
652
|
+
hashable += @projects[project_key][:name]
|
653
|
+
end
|
654
|
+
end
|
655
|
+
Digest::MD5.hexdigest(hashable)
|
656
|
+
end
|
657
|
+
|
658
|
+
def qainit_drone_minimal_deploy!
|
659
|
+
# binding.pry
|
660
|
+
# tenere solo il project da deployare (l'unico project è prima/crash)
|
661
|
+
project = ''
|
662
|
+
@projects.each_key do |project_key|
|
663
|
+
if @projects[project_key][:revision]
|
664
|
+
project = project_key
|
665
|
+
git_checkout_version(project_key, @projects[project_key][:revision])
|
666
|
+
end
|
667
|
+
end
|
668
|
+
deploy_id = calculate_deploy_id
|
669
|
+
|
670
|
+
@dns_record_identifier = deploy_id
|
671
|
+
hostname_pattern_priority = hostname_pattern_priority()
|
672
|
+
tags = [
|
673
|
+
{
|
674
|
+
key: project,
|
675
|
+
value: @projects[project][:name]
|
676
|
+
},
|
677
|
+
{
|
678
|
+
key: "hostname_pattern_priority",
|
679
|
+
value: hostname_pattern_priority
|
680
|
+
}
|
681
|
+
]
|
682
|
+
|
683
|
+
cluster_stack_name = "ecs-cluster-qa-#{deploy_id}"
|
684
|
+
|
685
|
+
if stack_exists?(cluster_stack_name)
|
686
|
+
tags = get_stack_tags(cluster_stack_name)
|
687
|
+
hostname_pattern_priority = tags.detect do |tag|
|
688
|
+
tag.key == 'hostname_pattern_priority'
|
689
|
+
end.value
|
690
|
+
end
|
691
|
+
|
692
|
+
stack_name_alb = @base_stack_name_alb + deploy_id[0..5]
|
693
|
+
stack_name_alb_ws = @base_stack_name_alb_ws + deploy_id[0..5]
|
694
|
+
|
695
|
+
create_cluster_stack(cluster_stack_name, tags) unless stack_exists?(cluster_stack_name)
|
696
|
+
wait_for_stack_ready(cluster_stack_name) unless stack_ready?(cluster_stack_name)
|
697
|
+
|
698
|
+
create_alb_stack(stack_name_alb, "http", deploy_id, 'qa-minimal') unless stack_exists?(stack_name_alb)
|
699
|
+
create_alb_stack(stack_name_alb_ws, "websocket", deploy_id, 'qa-minimal') unless stack_exists?(stack_name_alb_ws)
|
700
|
+
|
701
|
+
resp = @cf.describe_stack_resource({stack_name: cluster_stack_name, logical_resource_id: 'ECSCluster'})
|
702
|
+
@ecs_cluster_name = resp.stack_resource_detail.physical_resource_id
|
703
|
+
|
704
|
+
asg_stack_name = "ecs-asg-allinone-qa-#{deploy_id}"
|
705
|
+
create_asg_stack(asg_stack_name, tags) unless stack_exists?(asg_stack_name)
|
706
|
+
|
707
|
+
case project
|
708
|
+
when 'prima'
|
709
|
+
create_prima_artifact(@projects["prima"][:revision], @projects["prima"][:name], deploy_id, true) unless artifact_exists?('prima-artifacts-encrypted', "prima/#{@projects["prima"][:revision]}-#{deploy_id}.tar.gz")
|
710
|
+
when 'crash'
|
711
|
+
create_crash_artifact(@projects['crash'][:revision], deploy_id, true) unless artifact_exists?('prima-artifacts-encrypted', "microservices/crash/#{@projects['crash'][:revision]}-#{deploy_id}-qa.tar.gz")
|
712
|
+
end
|
713
|
+
|
714
|
+
wait_for_stack_ready(stack_name_alb) unless stack_ready?(stack_name_alb)
|
715
|
+
wait_for_stack_ready(stack_name_alb_ws) unless stack_ready?(stack_name_alb_ws)
|
716
|
+
|
717
|
+
stack_name_route53 = "ecs-route53-qa-#{deploy_id}"
|
718
|
+
stack_body = IO.read('cloudformation/stacks/route53/minimal_qa.yml')
|
719
|
+
parameters = [
|
720
|
+
{
|
721
|
+
parameter_key: "DnsRecordIdentifier",
|
722
|
+
parameter_value: @dns_record_identifier
|
723
|
+
},
|
724
|
+
{
|
725
|
+
parameter_key: "PrimaElbHostname",
|
726
|
+
parameter_value: get_alb_host(stack_name_alb)
|
727
|
+
},
|
728
|
+
{
|
729
|
+
parameter_key: 'CrashElbHostname',
|
730
|
+
parameter_value: get_alb_host(stack_name_alb_ws)
|
731
|
+
}
|
732
|
+
]
|
733
|
+
|
734
|
+
create_stack(stack_name_route53, stack_body, parameters, tags) unless stack_exists?(stack_name_route53)
|
735
|
+
wait_for_stack_ready(stack_name_route53) unless stack_ready?(stack_name_route53)
|
736
|
+
|
737
|
+
case project
|
738
|
+
when 'prima'
|
739
|
+
stack_name_web = "ecs-task-web-qa-#{deploy_id}"
|
740
|
+
git_checkout_version('prima', @projects["prima"][:revision])
|
741
|
+
stack_body = IO.read('projects/prima/app/cloudformation/tasks/web.yml')
|
742
|
+
parameters = [
|
743
|
+
{
|
744
|
+
parameter_key: "Environment",
|
745
|
+
parameter_value: "qa-minimal"
|
746
|
+
},
|
747
|
+
{
|
748
|
+
parameter_key: "ReleaseVersion",
|
749
|
+
parameter_value: "#{@projects["prima"][:revision]}-#{deploy_id}"
|
750
|
+
},
|
751
|
+
{
|
752
|
+
parameter_key: "TaskDesiredCount",
|
753
|
+
parameter_value: "1"
|
754
|
+
},
|
755
|
+
{
|
756
|
+
parameter_key: "ECSClusterName",
|
757
|
+
parameter_value: @ecs_cluster_name
|
758
|
+
},
|
759
|
+
{
|
760
|
+
parameter_key: "ALBShortName",
|
761
|
+
parameter_value: "web-qa-#{deploy_id}"[0..31]
|
762
|
+
},
|
763
|
+
{
|
764
|
+
parameter_key: "WebQaBaseHostname",
|
765
|
+
parameter_value: "#{@dns_record_identifier}.qa.colaster.com"
|
766
|
+
},
|
767
|
+
{
|
768
|
+
parameter_key: "HostnamePattern",
|
769
|
+
parameter_value: "ww*-#{@dns_record_identifier}.qa.colaster.com"
|
770
|
+
},
|
771
|
+
{
|
772
|
+
parameter_key: "HostnamePatternPriority",
|
773
|
+
parameter_value: hostname_pattern_priority
|
774
|
+
},
|
775
|
+
{
|
776
|
+
parameter_key: "HostnamePatternAggregatorPriority",
|
777
|
+
parameter_value: (hostname_pattern_priority.to_i + 1).to_s
|
778
|
+
},
|
779
|
+
{
|
780
|
+
parameter_key: "EnvHash",
|
781
|
+
parameter_value: deploy_id
|
782
|
+
}
|
783
|
+
]
|
784
|
+
if stack_exists?(stack_name_web)
|
785
|
+
cur_version = get_currently_deployed_version(stack_name_web)
|
786
|
+
update_stack(stack_name_web, stack_body, parameters, tags) unless cur_version.include?(@projects["prima"][:revision])
|
787
|
+
else
|
788
|
+
create_stack(stack_name_web, stack_body, parameters, tags)
|
789
|
+
end
|
790
|
+
wait_for_stack_ready(stack_name_web) unless stack_ready?(stack_name_web)
|
791
|
+
update_service_defaults(stack_name_web)
|
792
|
+
prima_hostname = get_route53_hostname(stack_name_web)
|
793
|
+
|
794
|
+
projects_text = "
|
795
|
+
> Prima url: https://#{prima_hostname}
|
796
|
+
> Prima RI url: https://#{prima_hostname.sub("www", "wwwri")}
|
797
|
+
> SSH connection: ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no githubUsername@#{ec2_ip_address(asg_stack_name)}\n"
|
798
|
+
|
799
|
+
when 'crash'
|
800
|
+
git_checkout_version('crash', @projects['crash'][:revision])
|
801
|
+
stack_name_crash = "ecs-task-crash-qa-#{deploy_id}"
|
802
|
+
stack_body = IO.read('projects/crash/deploy/task.yml')
|
803
|
+
parameters = [
|
804
|
+
{
|
805
|
+
parameter_key: 'Environment',
|
806
|
+
parameter_value: 'qa'
|
807
|
+
},
|
808
|
+
{
|
809
|
+
parameter_key: 'ReleaseVersion',
|
810
|
+
parameter_value: "#{@projects['crash'][:revision]}-#{deploy_id}"
|
811
|
+
},
|
812
|
+
{
|
813
|
+
parameter_key: 'TaskDesiredCount',
|
814
|
+
parameter_value: '1'
|
815
|
+
},
|
816
|
+
{
|
817
|
+
parameter_key: 'ECSClusterName',
|
818
|
+
parameter_value: @ecs_cluster_name
|
819
|
+
},
|
820
|
+
{
|
821
|
+
parameter_key: 'ALBShortName',
|
822
|
+
parameter_value: "crash-qa-#{deploy_id}"[0..31]
|
823
|
+
},
|
824
|
+
{
|
825
|
+
parameter_key: 'HostnamePattern',
|
826
|
+
parameter_value: "crash-#{@dns_record_identifier}.qa.colaster.com"
|
827
|
+
},
|
828
|
+
{
|
829
|
+
parameter_key: 'HostnamePatternPriority',
|
830
|
+
parameter_value: (hostname_pattern_priority.to_i + 10).to_s
|
831
|
+
}
|
832
|
+
]
|
833
|
+
if stack_exists?(stack_name_crash)
|
834
|
+
cur_version = get_currently_deployed_version(stack_name_crash)
|
835
|
+
update_stack(stack_name_crash, stack_body, parameters, tags) unless cur_version.include?(@projects["crash"][:revision])
|
836
|
+
else
|
837
|
+
create_stack(stack_name_crash, stack_body, parameters, tags)
|
838
|
+
end
|
839
|
+
wait_for_stack_ready(stack_name_crash) unless stack_ready?(stack_name_crash)
|
840
|
+
update_service_defaults(stack_name_crash)
|
841
|
+
crash_hostname = get_route53_hostname(stack_name_crash)
|
842
|
+
projects_text = "
|
843
|
+
> Crash url: https://#{crash_hostname}
|
844
|
+
> SSH connection: ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no githubUsername@#{ec2_ip_address(asg_stack_name)}\n"
|
845
|
+
end
|
846
|
+
|
847
|
+
output projects_text.cyan
|
848
|
+
output "Deploy effettuato, everything is awesome!\n".green
|
849
|
+
if @qainit
|
850
|
+
qainit_write_output(projects_text, 'Indirizzi scritti su ')
|
642
851
|
end
|
643
852
|
end
|
644
853
|
|
@@ -1687,7 +1896,7 @@ class Release
|
|
1687
1896
|
!@projects['crash'].empty? && (!@projects['crash'][:default_branch] || !@projects['crash'][:default_branch])
|
1688
1897
|
end
|
1689
1898
|
|
1690
|
-
def create_crash_artifact(revision, deploy_id)
|
1899
|
+
def create_crash_artifact(revision, deploy_id, minimal = false)
|
1691
1900
|
output "Preparo l'artifact crash .zip\n".yellow
|
1692
1901
|
|
1693
1902
|
git_checkout_version('crash', revision)
|
@@ -1707,26 +1916,49 @@ class Release
|
|
1707
1916
|
if @qainit
|
1708
1917
|
`mv docker-compose-ci.yml docker-compose.yml`
|
1709
1918
|
exec_step 'prepare-docker-compose --directory crash && cp docker-compose-qainit.yml docker-compose.yml'
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
1729
|
-
|
1919
|
+
if minimal
|
1920
|
+
[
|
1921
|
+
'docker-compose build web',
|
1922
|
+
"docker-compose run -w $PWD -u root -e WS_ENDPOINT=#{ws_endpoint} -e GRAPHQL_ENDPOINT=#{frontend_endpoint} -e MIX_ENV=staging web \
|
1923
|
+
'-c' 'sed -i \"s/crash-staging.prima.it/#{crash_qa_host}/g\" config/staging.exs && \
|
1924
|
+
mix local.hex --force && mix hex.info && \
|
1925
|
+
mix deps.get && \
|
1926
|
+
cd assets && \
|
1927
|
+
yarn --cache-folder ~/.cache/yarn && \
|
1928
|
+
./node_modules/.bin/elm-github-install && \
|
1929
|
+
NODE_ENV=production sysconfcpus -n 2 ./node_modules/.bin/webpack -p --config config/webpack.config.prod.js && \
|
1930
|
+
cd ../ && \
|
1931
|
+
mix release.clean --implode --no-confirm && \
|
1932
|
+
mix phx.digest && \
|
1933
|
+
mix deps.clean --all && \
|
1934
|
+
mix deps.get && \
|
1935
|
+
mix compile && mix release --env=staging'",
|
1936
|
+
'docker-compose down'
|
1937
|
+
].each do |cmd|
|
1938
|
+
execute_command cmd
|
1939
|
+
end
|
1940
|
+
else
|
1941
|
+
[
|
1942
|
+
'docker-compose build web',
|
1943
|
+
"docker-compose run -w $PWD -u root -e WS_ENDPOINT=#{ws_endpoint} -e GRAPHQL_ENDPOINT=#{frontend_endpoint} -e MIX_ENV=qa web \
|
1944
|
+
'-c' 'sed -i \"s/web-qa-host/#{web_qa_host}/g\" config/qa.exs && \
|
1945
|
+
sed -i \"s/crash-qa-host/#{crash_qa_host}/g\" config/qa.exs && \
|
1946
|
+
mix local.hex --force && mix hex.info && \
|
1947
|
+
mix deps.get && \
|
1948
|
+
cd assets && \
|
1949
|
+
yarn --cache-folder ~/.cache/yarn && \
|
1950
|
+
./node_modules/.bin/elm-github-install && \
|
1951
|
+
NODE_ENV=production sysconfcpus -n 2 ./node_modules/.bin/webpack -p --config config/webpack.config.prod.js && \
|
1952
|
+
cd ../ && \
|
1953
|
+
mix release.clean --implode --no-confirm && \
|
1954
|
+
mix phx.digest && \
|
1955
|
+
mix deps.clean --all && \
|
1956
|
+
mix deps.get && \
|
1957
|
+
mix compile && mix release --env=qa'",
|
1958
|
+
'docker-compose down'
|
1959
|
+
].each do |cmd|
|
1960
|
+
execute_command cmd
|
1961
|
+
end
|
1730
1962
|
end
|
1731
1963
|
|
1732
1964
|
cleanup_containers
|
@@ -2262,7 +2494,8 @@ class Release
|
|
2262
2494
|
Dir.chdir '../../'
|
2263
2495
|
end
|
2264
2496
|
|
2265
|
-
def create_prima_artifact(revision, branch_name, deploy_id)
|
2497
|
+
def create_prima_artifact(revision, branch_name, deploy_id, minimal = false)
|
2498
|
+
# @projects["prima"][:revision], @projects["prima"][:name], deploy_id, true
|
2266
2499
|
output "Preparo l'artifact prima .zip\n".yellow
|
2267
2500
|
|
2268
2501
|
git_checkout_version('prima', revision)
|
@@ -2278,10 +2511,26 @@ class Release
|
|
2278
2511
|
end
|
2279
2512
|
|
2280
2513
|
backoffice_qa_host = get_route53_hostname("ecs-task-borat-qa-notneeded")
|
2514
|
+
# backoffice-staging.prima.it
|
2281
2515
|
web_qa_host = get_route53_hostname("ecs-task-web-qa-notneeded")
|
2516
|
+
# staging.prima.it
|
2282
2517
|
assange_qa_host = get_route53_hostname("ecs-task-assange-qa-notneeded")
|
2518
|
+
# assange-staging.prima.it
|
2519
|
+
if minimal
|
2520
|
+
backoffice_qa_host = 'backoffice-staging.prima.it'
|
2521
|
+
assange_qa_host = 'assange-staging.prima.it'
|
2522
|
+
end
|
2283
2523
|
|
2284
|
-
if
|
2524
|
+
if minimal # passare Environment=qa al task.yml, ma mettere i puntamenti verso staging
|
2525
|
+
exec_step 'mv docker-compose-ci.yml docker-compose.yml'
|
2526
|
+
exec_step 'prepare-docker-compose --directory prima'
|
2527
|
+
exec_step 'sed -i "s/\\/home\\/app/\\/root/g" docker-compose.yml'
|
2528
|
+
[
|
2529
|
+
"bin/minimal_local_build_artifact.sh #{branch_name} #{web_qa_host} #{backoffice_qa_host} #{assange_qa_host} #{deploy_id} #{'update' if @deploy_update}"
|
2530
|
+
].each do |cmd|
|
2531
|
+
execute_command cmd
|
2532
|
+
end
|
2533
|
+
elsif @qainit
|
2285
2534
|
exec_step 'mv docker-compose-ci.yml docker-compose.yml'
|
2286
2535
|
exec_step 'prepare-docker-compose --directory prima'
|
2287
2536
|
exec_step 'sed -i "s/\\/home\\/app/\\/root/g" docker-compose.yml'
|
@@ -2343,12 +2592,12 @@ class Release
|
|
2343
2592
|
update_stack(stack_name, stack_body, [], tags)
|
2344
2593
|
end
|
2345
2594
|
|
2346
|
-
def create_alb_stack(stack_name, role, hash)
|
2595
|
+
def create_alb_stack(stack_name, role, hash, environment = 'qa')
|
2347
2596
|
stack_body = IO.read('cloudformation/stacks/elb/alb-public-qa.yml')
|
2348
2597
|
parameters = [
|
2349
2598
|
{
|
2350
2599
|
parameter_key: "Environment",
|
2351
|
-
parameter_value:
|
2600
|
+
parameter_value: environment
|
2352
2601
|
},
|
2353
2602
|
{
|
2354
2603
|
parameter_key: "Role",
|
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.39.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matteo Giachino
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2018-07-
|
16
|
+
date: 2018-07-19 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: aws-sdk
|
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
214
|
version: '0'
|
215
215
|
requirements: []
|
216
216
|
rubyforge_project:
|
217
|
-
rubygems_version: 2.
|
217
|
+
rubygems_version: 2.6.11
|
218
218
|
signing_key:
|
219
219
|
specification_version: 4
|
220
220
|
summary: The Prima twig toolbelt
|