prima-twig 0.50.4 → 0.50.50
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 +5 -5
- data/bin/twig-deploy +14 -0
- data/bin/twig-feature +590 -548
- data/lib/prima_twig.rb +1 -1
- metadata +3 -3
data/bin/twig-feature
CHANGED
|
@@ -31,7 +31,7 @@ class Release
|
|
|
31
31
|
@s3 = Aws::S3::Client.new
|
|
32
32
|
@s3_bucket = 'prima-artifacts'
|
|
33
33
|
@artifact_path = '/tmp/prima-artifact.zip'
|
|
34
|
-
@import_db_task = 'arn:aws:ecs:eu-west-1:001575623345:task-definition/ecs-task-db-restore2-TaskDefinitionDbRestore-
|
|
34
|
+
@import_db_task = 'arn:aws:ecs:eu-west-1:001575623345:task-definition/ecs-task-db-restore2-TaskDefinitionDbRestore-1ELQ2B0YCR1U:1'
|
|
35
35
|
@cf_role = 'arn:aws:iam::001575623345:role/qainit-service-role-cloudformat-CloudformationRole-18KBZQIS148R9'
|
|
36
36
|
@dns_record_identifier = nil
|
|
37
37
|
@ecs_cluster_name = nil
|
|
@@ -55,7 +55,10 @@ class Release
|
|
|
55
55
|
'skynet' => {},
|
|
56
56
|
'roger' => {},
|
|
57
57
|
'rachele' => {},
|
|
58
|
-
'leftorium' => {}
|
|
58
|
+
'leftorium' => {},
|
|
59
|
+
'pyxis-npm' => {},
|
|
60
|
+
'starsky' => {},
|
|
61
|
+
'hutch' => {}
|
|
59
62
|
}
|
|
60
63
|
@base_stack_name_alb = 'ecs-alb-http-public-qa-'
|
|
61
64
|
@base_stack_name_alb_ws = 'ecs-alb-ws-public-qa-'
|
|
@@ -69,7 +72,7 @@ class Release
|
|
|
69
72
|
when 'finish'
|
|
70
73
|
finish_feature!
|
|
71
74
|
when 'qainit'
|
|
72
|
-
abort('Non sei nella cartella di qainit') unless Dir.pwd.match 'qainit$'
|
|
75
|
+
abort('Non sei nella cartella di qainit') unless Dir.pwd.match 'qainit$' or Dir.pwd.match '/drone/src'
|
|
73
76
|
if ['terminate', 'stop', 'shutdown', 'halt', 'destroy'].include? args[1]
|
|
74
77
|
qainit_deploy_shutdown!
|
|
75
78
|
elsif 'update' == args[1]
|
|
@@ -80,7 +83,7 @@ class Release
|
|
|
80
83
|
qainit_minimal_deploy! args[2]
|
|
81
84
|
else
|
|
82
85
|
if args[1]
|
|
83
|
-
select_branches(args[1])
|
|
86
|
+
select_branches(args[1..-1])
|
|
84
87
|
else
|
|
85
88
|
select_branches
|
|
86
89
|
end
|
|
@@ -374,7 +377,7 @@ class Release
|
|
|
374
377
|
envs.each do |key, env|
|
|
375
378
|
title = ""
|
|
376
379
|
env.each do |e|
|
|
377
|
-
title << "
|
|
380
|
+
title << "#{e.value}" if e.key == 'qainit'
|
|
378
381
|
end
|
|
379
382
|
msg = "#{@prima.reduce_size(title, 1000)}".light_blue
|
|
380
383
|
menu.choice(msg) { key }
|
|
@@ -611,7 +614,7 @@ class Release
|
|
|
611
614
|
output "Recupero le informazioni sui QA attivi..."
|
|
612
615
|
stack_list, envs = get_stacks
|
|
613
616
|
|
|
614
|
-
env_hash = "qa-" +
|
|
617
|
+
env_hash = "qa-" + get_deploy_id
|
|
615
618
|
|
|
616
619
|
cluster_stack_name = nil
|
|
617
620
|
stacks_to_delete = []
|
|
@@ -705,13 +708,18 @@ class Release
|
|
|
705
708
|
@s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/elb/alb-public-qa.yml', response_target: 'cloudformation/stacks/elb/alb-public-qa.yml'})
|
|
706
709
|
end
|
|
707
710
|
|
|
708
|
-
def
|
|
709
|
-
|
|
711
|
+
def get_deploy_id
|
|
712
|
+
if @deploy_id
|
|
713
|
+
@deploy_id
|
|
714
|
+
else
|
|
715
|
+
@deploy_id = Digest::MD5.hexdigest(ENV['DRONE_BRANCH'])
|
|
716
|
+
@deploy_id
|
|
717
|
+
end
|
|
710
718
|
end
|
|
711
719
|
|
|
712
720
|
def qainit_drone_minimal_deploy!
|
|
713
721
|
# tenere solo il project da deployare (l'unico project è prima)
|
|
714
|
-
@ami_id =
|
|
722
|
+
@ami_id = "ami-07e958e72c22cfd7a"
|
|
715
723
|
project = ''
|
|
716
724
|
@projects.each_key do |project_key|
|
|
717
725
|
if @projects[project_key][:revision]
|
|
@@ -719,7 +727,7 @@ class Release
|
|
|
719
727
|
git_checkout_version(project_key, @projects[project_key][:revision])
|
|
720
728
|
end
|
|
721
729
|
end
|
|
722
|
-
deploy_id =
|
|
730
|
+
deploy_id = get_deploy_id
|
|
723
731
|
|
|
724
732
|
@git_branch = ENV['DRONE_BRANCH']
|
|
725
733
|
@dns_record_identifier = deploy_id
|
|
@@ -763,7 +771,9 @@ class Release
|
|
|
763
771
|
asg_stack_name = "ecs-asg-allinone-qa-#{deploy_id}"
|
|
764
772
|
create_asg_stack(asg_stack_name, tags) unless stack_exists?(asg_stack_name)
|
|
765
773
|
|
|
766
|
-
|
|
774
|
+
deploy_id = get_deploy_id
|
|
775
|
+
create_pyxis_artifact(@projects["pyxis-npm"][:revision], deploy_id)
|
|
776
|
+
create_prima_artifact(@projects["prima"][:revision], @projects["prima"][:name], deploy_id, true) unless artifact_exists?('prima-artifacts-encrypted', "prima/#{@projects["prima"][:revision]}.tar.gz")
|
|
767
777
|
|
|
768
778
|
wait_for_stack_ready(stack_name_alb) unless stack_ready?(stack_name_alb)
|
|
769
779
|
wait_for_stack_ready(stack_name_alb_ws) unless stack_ready?(stack_name_alb_ws)
|
|
@@ -869,7 +879,7 @@ class Release
|
|
|
869
879
|
def deploy_feature!
|
|
870
880
|
`git pull && git submodule init && git submodule update`
|
|
871
881
|
@ami_id = get_ami_id("ecs-fleet-allinone-staging")
|
|
872
|
-
deploy_id =
|
|
882
|
+
deploy_id = get_deploy_id
|
|
873
883
|
stack_name_alb = 'ecs-alb-http-public-qa-' + deploy_id[0..5]
|
|
874
884
|
stack_name_alb_ws = 'ecs-alb-ws-public-qa-' + deploy_id[0..5]
|
|
875
885
|
unless @qainit
|
|
@@ -893,8 +903,11 @@ class Release
|
|
|
893
903
|
}
|
|
894
904
|
]
|
|
895
905
|
@projects.each do |key, value|
|
|
896
|
-
|
|
906
|
+
case key.to_s
|
|
907
|
+
when 'crash'
|
|
897
908
|
tags << { key: 'crash', value: @projects['crash'][:name] } if deploy_crash?
|
|
909
|
+
when 'starsky', 'hutch'
|
|
910
|
+
tags << { key: key.to_s, value: @projects[key.to_s][:name] } if deploy_starsky_hutch?
|
|
898
911
|
else
|
|
899
912
|
tags << { key: key, value: value[:name] }
|
|
900
913
|
end
|
|
@@ -935,7 +948,10 @@ class Release
|
|
|
935
948
|
]
|
|
936
949
|
create_stack(stack_name_db, stack_body, parameters, tags, @cf_role) unless stack_exists?(stack_name_db) # creazione asincrona stack dei db (~4 min)
|
|
937
950
|
|
|
938
|
-
|
|
951
|
+
output "check pyxis \n".yellow
|
|
952
|
+
|
|
953
|
+
create_pyxis_artifact(@projects["pyxis-npm"][:revision], deploy_id) unless @projects["pyxis-npm"].nil? # deve essere creato prima di quello di prima, per avere la versione
|
|
954
|
+
create_prima_artifact(@projects["prima"][:revision], @projects["prima"][:name], deploy_id) unless artifact_exists?('prima-artifacts-encrypted', "prima/#{@projects["prima"][:revision]}.tar.gz")
|
|
939
955
|
# l'artefatto di prima viene creato sempre (puntamenti all'ambiente compilati nel js) e richiede molto più di 4 minuti
|
|
940
956
|
wait_for_stack_ready(stack_name_db) unless stack_ready?(stack_name_db) # dovrebbe essere istantaneo
|
|
941
957
|
db_task = ''
|
|
@@ -947,7 +963,7 @@ class Release
|
|
|
947
963
|
create_ermes_artifact(@projects["ermes"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/ermes/#{@projects["ermes"][:revision]}-qa.tar.gz")
|
|
948
964
|
create_bburago_artifact(@projects["bburago"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/bburago/#{@projects["bburago"][:revision]}-qa.tar.gz")
|
|
949
965
|
create_hal9000_artifact(@projects["hal9000"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/hal9000/#{@projects["hal9000"][:revision]}-qa.tar.gz")
|
|
950
|
-
create_rachele_artifact(@projects[
|
|
966
|
+
create_rachele_artifact(@projects["rachele"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/rachele/#{@projects["rachele"][:revision]}-qa.tar.gz")
|
|
951
967
|
create_fidaty_artifact(@projects["fidaty"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/fidaty/#{@projects["fidaty"][:revision]}-qa.tar.gz")
|
|
952
968
|
create_peano_artifact(@projects["peano"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/peano/#{@projects["peano"][:revision]}-qa.tar.gz")
|
|
953
969
|
create_rogoreport_artifact(@projects["rogoreport"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/rogoreport/rogoreport-#{@projects["rogoreport"][:revision]}-qa.tar.gz")
|
|
@@ -956,6 +972,8 @@ class Release
|
|
|
956
972
|
create_activia_artifact(@projects["activia"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/activia/#{@projects["activia"][:revision]}-qa.tar.gz")
|
|
957
973
|
create_leftorium_artifact(@projects["leftorium"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/leftorium/#{@projects["leftorium"][:revision]}-qa.tar.gz")
|
|
958
974
|
create_skynet_artifact(@projects["skynet"][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/skynet/#{@projects["skynet"][:revision]}-qa.tar.gz")
|
|
975
|
+
create_starsky_artifact(@projects["starsky"][:revision]) unless !deploy_starsky_hutch? || artifact_exists?('prima-artifacts-encrypted', "microservices/starsky/#{@projects["starsky"][:revision]}-qa.tar.gz")
|
|
976
|
+
create_hutch_artifact(@projects["hutch"][:revision]) unless !deploy_starsky_hutch? || artifact_exists?('prima-artifacts-encrypted', "microservices/hutch/#{@projects["hutch"][:revision]}-qa.tar.gz")
|
|
959
977
|
|
|
960
978
|
wait_for_db_import(db_task) unless stack_exists?("ecs-route53-qa-#{deploy_id}") # dovrebbe essere istantaneo
|
|
961
979
|
|
|
@@ -1034,6 +1052,14 @@ class Release
|
|
|
1034
1052
|
{
|
|
1035
1053
|
parameter_key: 'CrashElbHostname',
|
|
1036
1054
|
parameter_value: get_alb_host(stack_name_alb_ws)
|
|
1055
|
+
},
|
|
1056
|
+
{
|
|
1057
|
+
parameter_key: 'StarskyElbHostname',
|
|
1058
|
+
parameter_value: get_alb_host(stack_name_alb)
|
|
1059
|
+
},
|
|
1060
|
+
{
|
|
1061
|
+
parameter_key: 'HutchElbHostname',
|
|
1062
|
+
parameter_value: get_alb_host(stack_name_alb)
|
|
1037
1063
|
}
|
|
1038
1064
|
]
|
|
1039
1065
|
|
|
@@ -1586,6 +1612,52 @@ class Release
|
|
|
1586
1612
|
end
|
|
1587
1613
|
end
|
|
1588
1614
|
|
|
1615
|
+
if deploy_starsky_hutch?
|
|
1616
|
+
stack_name_starsky = "ecs-task-starsky-qa-#{deploy_id}"
|
|
1617
|
+
git_checkout_version('starsky', @projects["starsky"][:revision])
|
|
1618
|
+
stack_body = IO.read('projects/starsky/deploy/task.yml')
|
|
1619
|
+
parameters = [
|
|
1620
|
+
{
|
|
1621
|
+
parameter_key: "Environment",
|
|
1622
|
+
parameter_value: "qa"
|
|
1623
|
+
},
|
|
1624
|
+
{
|
|
1625
|
+
parameter_key: "ReleaseVersion",
|
|
1626
|
+
parameter_value: "#{@projects["starsky"][:revision]}"
|
|
1627
|
+
},
|
|
1628
|
+
{
|
|
1629
|
+
parameter_key: "TaskDesiredCount",
|
|
1630
|
+
parameter_value: "1"
|
|
1631
|
+
},
|
|
1632
|
+
{
|
|
1633
|
+
parameter_key: "ECSClusterName",
|
|
1634
|
+
parameter_value: @ecs_cluster_name
|
|
1635
|
+
},
|
|
1636
|
+
{
|
|
1637
|
+
parameter_key: "ALBShortName",
|
|
1638
|
+
parameter_value: "starsky-qa-#{deploy_id}"[0..27]
|
|
1639
|
+
},
|
|
1640
|
+
{
|
|
1641
|
+
parameter_key: "EnvHash",
|
|
1642
|
+
parameter_value: deploy_id
|
|
1643
|
+
},
|
|
1644
|
+
{
|
|
1645
|
+
parameter_key: "HostnamePattern",
|
|
1646
|
+
parameter_value: "starsky-#{@dns_record_identifier}.qa.colaster.com"
|
|
1647
|
+
},
|
|
1648
|
+
{
|
|
1649
|
+
parameter_key: "HostnamePatternPriority",
|
|
1650
|
+
parameter_value: (hostname_pattern_priority.to_i + 74).to_s
|
|
1651
|
+
}
|
|
1652
|
+
]
|
|
1653
|
+
if stack_exists?(stack_name_starsky)
|
|
1654
|
+
cur_version = get_currently_deployed_version(stack_name_starsky)
|
|
1655
|
+
update_stack(stack_name_starsky, stack_body, parameters, tags, @cf_role) unless cur_version.include?(@projects["starsky"][:revision])
|
|
1656
|
+
else
|
|
1657
|
+
create_stack(stack_name_starsky, stack_body, parameters, tags, @cf_role)
|
|
1658
|
+
end
|
|
1659
|
+
end
|
|
1660
|
+
|
|
1589
1661
|
stack_name_activia = "ecs-task-activia-qa-#{deploy_id}"
|
|
1590
1662
|
git_checkout_version('activia', @projects["activia"][:revision])
|
|
1591
1663
|
stack_body = File.read('projects/activia/deploy/task.yml')
|
|
@@ -1780,6 +1852,55 @@ class Release
|
|
|
1780
1852
|
create_stack(stack_name_roger, stack_body, parameters, tags, @cf_role)
|
|
1781
1853
|
end
|
|
1782
1854
|
|
|
1855
|
+
|
|
1856
|
+
if deploy_starsky_hutch?
|
|
1857
|
+
wait_for_stack_ready(stack_name_starsky) unless stack_ready?(stack_name_starsky) unless !deploy_starsky_hutch?
|
|
1858
|
+
|
|
1859
|
+
stack_name_hutch = "ecs-task-hutch-qa-#{deploy_id}"
|
|
1860
|
+
git_checkout_version('hutch', @projects["hutch"][:revision])
|
|
1861
|
+
stack_body = File.read('projects/hutch/deploy/task.yml')
|
|
1862
|
+
parameters = [
|
|
1863
|
+
{
|
|
1864
|
+
parameter_key: "Environment",
|
|
1865
|
+
parameter_value: "qa"
|
|
1866
|
+
},
|
|
1867
|
+
{
|
|
1868
|
+
parameter_key: "ReleaseVersion",
|
|
1869
|
+
parameter_value: "#{@projects["hutch"][:revision]}"
|
|
1870
|
+
},
|
|
1871
|
+
{
|
|
1872
|
+
parameter_key: "ALBShortName",
|
|
1873
|
+
parameter_value: "hutch-qa-#{deploy_id}"[0..27]
|
|
1874
|
+
},
|
|
1875
|
+
{
|
|
1876
|
+
parameter_key: "ECSClusterName",
|
|
1877
|
+
parameter_value: @ecs_cluster_name
|
|
1878
|
+
},
|
|
1879
|
+
{
|
|
1880
|
+
parameter_key: "EnvHash",
|
|
1881
|
+
parameter_value: deploy_id
|
|
1882
|
+
},
|
|
1883
|
+
{
|
|
1884
|
+
parameter_key: "HostnamePattern",
|
|
1885
|
+
parameter_value: "hutch-#{@dns_record_identifier}.qa.colaster.com"
|
|
1886
|
+
},
|
|
1887
|
+
{
|
|
1888
|
+
parameter_key: "HostnamePatternPriority",
|
|
1889
|
+
parameter_value: (hostname_pattern_priority.to_i + 254).to_s
|
|
1890
|
+
},
|
|
1891
|
+
{
|
|
1892
|
+
parameter_key: "StarskyUrl",
|
|
1893
|
+
parameter_value: "https://#{get_route53_hostname('ecs-task-starsky-qa-notneeded')}"
|
|
1894
|
+
}
|
|
1895
|
+
]
|
|
1896
|
+
if stack_exists?(stack_name_hutch)
|
|
1897
|
+
cur_version = get_currently_deployed_version(stack_name_hutch)
|
|
1898
|
+
update_stack(stack_name_hutch, stack_body, parameters, tags, @cf_role) unless cur_version.include?(@projects["hutch"][:revision])
|
|
1899
|
+
else
|
|
1900
|
+
create_stack(stack_name_hutch, stack_body, parameters, tags, @cf_role)
|
|
1901
|
+
end
|
|
1902
|
+
end
|
|
1903
|
+
|
|
1783
1904
|
wait_for_stack_ready(stack_name_web) unless stack_ready?(stack_name_web)
|
|
1784
1905
|
wait_for_stack_ready(stack_name_consumer) unless stack_ready?(stack_name_consumer)
|
|
1785
1906
|
wait_for_stack_ready(stack_name_ermes) unless stack_ready?(stack_name_ermes)
|
|
@@ -1789,6 +1910,7 @@ class Release
|
|
|
1789
1910
|
wait_for_stack_ready(stack_name_borat) unless stack_ready?(stack_name_borat)
|
|
1790
1911
|
wait_for_stack_ready(stack_name_activia) unless stack_ready?(stack_name_activia)
|
|
1791
1912
|
wait_for_stack_ready(stack_name_crash) unless stack_ready?(stack_name_crash) unless !deploy_crash?
|
|
1913
|
+
wait_for_stack_ready(stack_name_hutch) unless stack_ready?(stack_name_hutch) unless !deploy_starsky_hutch?
|
|
1792
1914
|
|
|
1793
1915
|
update_service_defaults(stack_name_web)
|
|
1794
1916
|
update_service_defaults(stack_name_consumer)
|
|
@@ -1805,6 +1927,8 @@ class Release
|
|
|
1805
1927
|
update_service_defaults(stack_name_skynet)
|
|
1806
1928
|
update_service_defaults(stack_name_leftorium)
|
|
1807
1929
|
update_service_defaults(stack_name_rachele)
|
|
1930
|
+
update_service_defaults(stack_name_starsky) unless !deploy_starsky_hutch?
|
|
1931
|
+
update_service_defaults(stack_name_hutch) unless !deploy_starsky_hutch?
|
|
1808
1932
|
update_service_defaults(stack_name_crash) unless !deploy_crash?
|
|
1809
1933
|
|
|
1810
1934
|
activia_hostname = get_route53_hostname(stack_name_activia)
|
|
@@ -1822,6 +1946,8 @@ class Release
|
|
|
1822
1946
|
leftorium_hostname = get_route53_hostname(stack_name_leftorium)
|
|
1823
1947
|
rachele_hostname = get_route53_hostname(stack_name_rachele)
|
|
1824
1948
|
crash_hostname = get_route53_hostname(stack_name_crash) unless !deploy_crash?
|
|
1949
|
+
starsky_hostname = get_route53_hostname(stack_name_starsky) unless !deploy_starsky_hutch?
|
|
1950
|
+
hutch_hostname = get_route53_hostname(stack_name_hutch) unless !deploy_starsky_hutch?
|
|
1825
1951
|
|
|
1826
1952
|
# launch_marley ec2_ip_address(asg_stack_name), prima_hostname, borat_hostname
|
|
1827
1953
|
|
|
@@ -1843,6 +1969,9 @@ class Release
|
|
|
1843
1969
|
projects_text.concat "
|
|
1844
1970
|
> Crash url: https://#{crash_hostname}" if deploy_crash?
|
|
1845
1971
|
projects_text.concat "
|
|
1972
|
+
> Starsky url: https://#{starsky_hostname}
|
|
1973
|
+
> Hutch url: https://#{hutch_hostname}" if deploy_starsky_hutch?
|
|
1974
|
+
projects_text.concat "
|
|
1846
1975
|
> RabbitMQ url: http://#{ec2_ip_address(asg_stack_name)}:15672
|
|
1847
1976
|
> Supervisor url: http://#{ec2_ip_address(asg_stack_name)}:9001
|
|
1848
1977
|
> Elasticsearch url: http://#{ec2_ip_address(asg_stack_name)}:9200
|
|
@@ -1850,9 +1979,7 @@ class Release
|
|
|
1850
1979
|
output projects_text.cyan
|
|
1851
1980
|
output "Deploy effettuato, everything is awesome!\n".green
|
|
1852
1981
|
|
|
1853
|
-
|
|
1854
|
-
qainit_write_output(projects_text, 'Indirizzi scritti su ')
|
|
1855
|
-
end
|
|
1982
|
+
qainit_write_output(projects_text, 'Indirizzi scritti su ')
|
|
1856
1983
|
end
|
|
1857
1984
|
|
|
1858
1985
|
def get_route53_hostname(stack_name)
|
|
@@ -1887,6 +2014,10 @@ class Release
|
|
|
1887
2014
|
host = "leftorium-#{@dns_record_identifier}.qa.colaster.com"
|
|
1888
2015
|
when stack_name.include?('rachele')
|
|
1889
2016
|
host = "rachele-#{@dns_record_identifier}.qa.colaster.com"
|
|
2017
|
+
when stack_name.include?('starsky')
|
|
2018
|
+
host = "starsky-#{@dns_record_identifier}.qa.colaster.com"
|
|
2019
|
+
when stack_name.include?('hutch')
|
|
2020
|
+
host = "hutch-#{@dns_record_identifier}.qa.colaster.com"
|
|
1890
2021
|
end
|
|
1891
2022
|
host
|
|
1892
2023
|
end
|
|
@@ -1941,6 +2072,10 @@ class Release
|
|
|
1941
2072
|
logical_resource_id = 'EcsApplicationLoadBalancerPublic'
|
|
1942
2073
|
when stack_name.include?('rachele')
|
|
1943
2074
|
logical_resource_id = 'EcsApplicationLoadBalancerInternal'
|
|
2075
|
+
when stack_name.include?('starsky')
|
|
2076
|
+
logical_resource_id = 'EcsApplicationLoadBalancerPublic'
|
|
2077
|
+
when stack_name.include?('hutch')
|
|
2078
|
+
logical_resource_id = 'EcsApplicationLoadBalancerPublic'
|
|
1944
2079
|
end
|
|
1945
2080
|
resp = @cf.describe_stack_resource({
|
|
1946
2081
|
stack_name: stack_name,
|
|
@@ -1990,6 +2125,10 @@ class Release
|
|
|
1990
2125
|
logical_resource_id = 'ECSServiceRacheleQA'
|
|
1991
2126
|
when stack_name.include?('crash')
|
|
1992
2127
|
logical_resource_id = 'ECSServiceCrashQA'
|
|
2128
|
+
when stack_name.include?('starsky')
|
|
2129
|
+
logical_resource_id = 'ECSServiceStarskyQA'
|
|
2130
|
+
when stack_name.include?('hutch')
|
|
2131
|
+
logical_resource_id = 'ECSServiceHutch'
|
|
1993
2132
|
else
|
|
1994
2133
|
raise "Service name non gestito per lo stack #{stack_name}"
|
|
1995
2134
|
end
|
|
@@ -2007,155 +2146,137 @@ class Release
|
|
|
2007
2146
|
)
|
|
2008
2147
|
end
|
|
2009
2148
|
|
|
2010
|
-
def
|
|
2011
|
-
output "Preparo l'artifact
|
|
2149
|
+
def create_activia_artifact(revision)
|
|
2150
|
+
output "Preparo l'artifact activia .zip\n".yellow
|
|
2012
2151
|
|
|
2013
|
-
git_checkout_version('
|
|
2152
|
+
git_checkout_version('activia', revision)
|
|
2014
2153
|
|
|
2015
|
-
Dir.chdir 'projects/
|
|
2154
|
+
Dir.chdir 'projects/activia'
|
|
2016
2155
|
|
|
2017
2156
|
decrypt_secrets()
|
|
2018
2157
|
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2158
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2159
|
+
exec_step 'prepare-docker-compose --directory activia && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2160
|
+
[
|
|
2161
|
+
"docker-compose build web",
|
|
2162
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2163
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2164
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2165
|
+
cd assets && \
|
|
2166
|
+
rm -rf node_modules && \
|
|
2167
|
+
yarn --cache-folder ~/.cache/yarn && \
|
|
2168
|
+
sysconfcpus -n 2 ./node_modules/.bin/webpack --mode production && \
|
|
2169
|
+
cd .. && \
|
|
2170
|
+
mix phx.digest && \
|
|
2171
|
+
rm -rf _build/qa/rel/ && \
|
|
2172
|
+
mix release --env=qa'"
|
|
2173
|
+
].each do |cmd|
|
|
2174
|
+
execute_command cmd
|
|
2022
2175
|
end
|
|
2023
2176
|
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
if @qainit
|
|
2027
|
-
[ "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2028
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2029
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2030
|
-
rm -rf _build/qa/rel/ && \
|
|
2031
|
-
mix release --env=qa'"
|
|
2032
|
-
].each do |cmd|
|
|
2033
|
-
execute_command cmd
|
|
2034
|
-
end
|
|
2177
|
+
cleanup_containers
|
|
2035
2178
|
|
|
2036
|
-
|
|
2037
|
-
else
|
|
2038
|
-
[ "docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh urania_web \
|
|
2039
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2040
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2041
|
-
rm -rf _build/qa/rel/ && \
|
|
2042
|
-
mix release --env=qa'"
|
|
2043
|
-
].each do |cmd|
|
|
2044
|
-
execute_command cmd
|
|
2045
|
-
end
|
|
2046
|
-
end
|
|
2179
|
+
artifact_path = Dir.glob("_build/qa/rel/activia/releases/*/activia.tar.gz").first
|
|
2047
2180
|
|
|
2048
|
-
artifact_path
|
|
2049
|
-
upload_artifact(artifact_path, "microservices/urania/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2181
|
+
upload_artifact(artifact_path, "microservices/activia/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2050
2182
|
|
|
2051
2183
|
Dir.chdir '../../'
|
|
2052
2184
|
end
|
|
2053
2185
|
|
|
2054
|
-
def
|
|
2055
|
-
output "Preparo l'artifact
|
|
2186
|
+
def create_assange_artifact(revision)
|
|
2187
|
+
output "Preparo l'artifact assange .zip\n".yellow
|
|
2056
2188
|
|
|
2057
|
-
git_checkout_version('
|
|
2189
|
+
git_checkout_version('assange', revision)
|
|
2058
2190
|
|
|
2059
|
-
Dir.chdir 'projects/
|
|
2191
|
+
Dir.chdir 'projects/assange'
|
|
2060
2192
|
|
|
2061
2193
|
decrypt_secrets()
|
|
2062
2194
|
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2195
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2196
|
+
exec_step 'prepare-docker-compose --directory assange && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2197
|
+
[
|
|
2198
|
+
"docker-compose build web",
|
|
2199
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2200
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2201
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2202
|
+
mix phx.digest && \
|
|
2203
|
+
rm -rf _build/qa/rel/ && \
|
|
2204
|
+
mix release --env=qa'"
|
|
2205
|
+
].each do |cmd|
|
|
2206
|
+
execute_command cmd
|
|
2066
2207
|
end
|
|
2067
2208
|
|
|
2068
|
-
|
|
2209
|
+
cleanup_containers
|
|
2069
2210
|
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2073
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2074
|
-
rm -rf _build/qa/rel/ && \
|
|
2075
|
-
mix release --env=qa'"
|
|
2076
|
-
].each do |cmd|
|
|
2077
|
-
execute_command cmd
|
|
2078
|
-
end
|
|
2211
|
+
artifact_path = Dir.glob("_build/qa/rel/assange/releases/*/assange.tar.gz").first
|
|
2212
|
+
upload_artifact(artifact_path, "microservices/assange/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2079
2213
|
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2214
|
+
Dir.chdir '../../'
|
|
2215
|
+
end
|
|
2216
|
+
|
|
2217
|
+
def create_bburago_artifact(revision)
|
|
2218
|
+
output "Preparo l'artifact bburago .zip\n".yellow
|
|
2219
|
+
|
|
2220
|
+
git_checkout_version('bburago', revision)
|
|
2221
|
+
|
|
2222
|
+
Dir.chdir 'projects/bburago'
|
|
2223
|
+
|
|
2224
|
+
decrypt_secrets()
|
|
2225
|
+
|
|
2226
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2227
|
+
exec_step 'prepare-docker-compose --directory bburago && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2228
|
+
[
|
|
2229
|
+
"docker-compose build web",
|
|
2230
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint deploy/create_qa_artifact web"
|
|
2231
|
+
].each do |cmd|
|
|
2232
|
+
execute_command cmd
|
|
2090
2233
|
end
|
|
2091
2234
|
|
|
2092
|
-
|
|
2093
|
-
|
|
2235
|
+
cleanup_containers
|
|
2236
|
+
|
|
2237
|
+
artifact_path = Dir.glob('_build/qa/rel/bburago/releases/*/bburago.tar.gz').first
|
|
2238
|
+
upload_artifact(artifact_path, "microservices/bburago/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2094
2239
|
|
|
2095
2240
|
Dir.chdir '../../'
|
|
2096
2241
|
end
|
|
2097
2242
|
|
|
2098
|
-
def
|
|
2099
|
-
output "Preparo l'artifact
|
|
2243
|
+
def create_borat_artifact(revision)
|
|
2244
|
+
output "Preparo l'artifact borat .zip\n".yellow
|
|
2100
2245
|
|
|
2101
|
-
git_checkout_version('
|
|
2246
|
+
git_checkout_version('borat', revision)
|
|
2102
2247
|
|
|
2103
|
-
Dir.chdir 'projects/
|
|
2248
|
+
Dir.chdir 'projects/borat'
|
|
2104
2249
|
|
|
2105
2250
|
decrypt_secrets()
|
|
2106
2251
|
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
exec_step 'prepare-docker-compose --directory ermes && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2110
|
-
end
|
|
2252
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2253
|
+
exec_step 'prepare-docker-compose --directory borat && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2111
2254
|
[
|
|
2112
|
-
"
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
'
|
|
2255
|
+
"docker network create borat_network || true",
|
|
2256
|
+
"docker-compose build web",
|
|
2257
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2258
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2259
|
+
mix deps.get && \
|
|
2260
|
+
cd assets && \
|
|
2261
|
+
yarn --cache-folder ~/.cache/yarn && \
|
|
2262
|
+
sysconfcpus -n 2 ./node_modules/.bin/webpack -p --config config/webpack.config.prod.js && \
|
|
2263
|
+
cd ../ && \
|
|
2264
|
+
mix phx.digest && \
|
|
2265
|
+
mix compile && mix deps.compile && \
|
|
2266
|
+
rm -rf _build/qa/rel/ && \
|
|
2267
|
+
mix distillery.release --env=qa'"
|
|
2116
2268
|
].each do |cmd|
|
|
2117
2269
|
execute_command cmd
|
|
2118
2270
|
end
|
|
2119
2271
|
|
|
2120
|
-
|
|
2121
|
-
[ "docker-compose run --rm -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2122
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2123
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2124
|
-
mix phx.digest && \
|
|
2125
|
-
rm -rf _build/qa/rel/ && \
|
|
2126
|
-
mix release --env=qa'"
|
|
2127
|
-
].each do |cmd|
|
|
2128
|
-
execute_command cmd
|
|
2129
|
-
end
|
|
2130
|
-
|
|
2131
|
-
cleanup_containers
|
|
2132
|
-
else
|
|
2133
|
-
[ "docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh ermes_web \
|
|
2134
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2135
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2136
|
-
mix phx.digest && \
|
|
2137
|
-
rm -rf _build/qa/rel/ && \
|
|
2138
|
-
mix release --env=qa'",
|
|
2139
|
-
"if echo `docker ps` | grep crash; \
|
|
2140
|
-
then echo 'cannot delete crash_default network'; \
|
|
2141
|
-
else docker network rm crash_default; fi "
|
|
2142
|
-
].each do |cmd|
|
|
2143
|
-
execute_command cmd
|
|
2144
|
-
end
|
|
2145
|
-
end
|
|
2272
|
+
cleanup_containers
|
|
2146
2273
|
|
|
2147
|
-
artifact_path = Dir.glob("_build/qa/rel/
|
|
2148
|
-
upload_artifact(artifact_path, "microservices/
|
|
2274
|
+
artifact_path = Dir.glob("_build/qa/rel/borat/releases/*/borat.tar.gz").first
|
|
2275
|
+
upload_artifact(artifact_path, "microservices/borat/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2149
2276
|
|
|
2150
2277
|
Dir.chdir '../../'
|
|
2151
2278
|
end
|
|
2152
2279
|
|
|
2153
|
-
def deploy_crash?
|
|
2154
|
-
crash_present = !@projects['crash'].empty? && @projects['crash'][:name] != 'master' && !@projects['crash'][:default_branch]
|
|
2155
|
-
leftorium_present = !@projects['leftorium'].empty? && @projects['leftorium'][:name] != 'master' && !@projects['leftorium'][:default_branch]
|
|
2156
|
-
crash_present || leftorium_present
|
|
2157
|
-
end
|
|
2158
|
-
|
|
2159
2280
|
def create_crash_artifact(revision, deploy_id)
|
|
2160
2281
|
output "Preparo l'artifact crash .zip\n".yellow
|
|
2161
2282
|
|
|
@@ -2167,122 +2288,104 @@ class Release
|
|
|
2167
2288
|
|
|
2168
2289
|
decrypt_secrets()
|
|
2169
2290
|
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
execute_command cmd
|
|
2190
|
-
end
|
|
2191
|
-
|
|
2192
|
-
cleanup_containers
|
|
2193
|
-
else
|
|
2194
|
-
[
|
|
2195
|
-
'mv docker-compose-ci.yml docker-compose.yml',
|
|
2196
|
-
'docker-compose build web',
|
|
2197
|
-
"docker-compose run -w $PWD -e ENV_HASH=#{deploy_id} -e MIX_ENV=qa web \
|
|
2198
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2199
|
-
mix deps.get && \
|
|
2200
|
-
cd assets && \
|
|
2201
|
-
yarn --cache-folder ~/.cache/yarn && \
|
|
2202
|
-
NODE_ENV=production sysconfcpus -n 1 yarn run build && \
|
|
2203
|
-
cd ../ && \
|
|
2204
|
-
mix release.clean --implode --no-confirm && \
|
|
2205
|
-
mix phx.digest && \
|
|
2206
|
-
mix deps.clean --all && \
|
|
2207
|
-
mix deps.get && \
|
|
2208
|
-
mix compile && mix release --env=qa'",
|
|
2209
|
-
'docker-compose down'
|
|
2210
|
-
].each do |cmd|
|
|
2211
|
-
execute_command cmd
|
|
2212
|
-
end
|
|
2291
|
+
`mv docker-compose-ci.yml docker-compose.yml`
|
|
2292
|
+
exec_step 'prepare-docker-compose --directory crash && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2293
|
+
[
|
|
2294
|
+
'docker-compose build web',
|
|
2295
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa -e ENV_HASH=#{deploy_id} web \
|
|
2296
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2297
|
+
mix deps.get && \
|
|
2298
|
+
cd assets && \
|
|
2299
|
+
yarn --cache-folder ~/.cache/yarn && \
|
|
2300
|
+
NODE_ENV=production sysconfcpus -n 1 yarn run build && \
|
|
2301
|
+
cd ../ && \
|
|
2302
|
+
mix release.clean --implode --no-confirm && \
|
|
2303
|
+
mix phx.digest && \
|
|
2304
|
+
mix deps.clean --all && \
|
|
2305
|
+
mix deps.get && \
|
|
2306
|
+
mix compile && mix release --env=qa'",
|
|
2307
|
+
'docker-compose down'
|
|
2308
|
+
].each do |cmd|
|
|
2309
|
+
execute_command cmd
|
|
2213
2310
|
end
|
|
2214
2311
|
|
|
2312
|
+
cleanup_containers
|
|
2313
|
+
|
|
2215
2314
|
artifact_path = Dir.glob('_build/qa/rel/crash/releases/*/crash.tar.gz').first
|
|
2216
2315
|
upload_artifact(artifact_path, "microservices/crash/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2217
2316
|
|
|
2218
2317
|
Dir.chdir '../../'
|
|
2219
2318
|
end
|
|
2220
2319
|
|
|
2221
|
-
def
|
|
2222
|
-
output "Preparo l'artifact
|
|
2320
|
+
def create_ermes_artifact(revision)
|
|
2321
|
+
output "Preparo l'artifact ermes .zip\n".yellow
|
|
2223
2322
|
|
|
2224
|
-
git_checkout_version('
|
|
2323
|
+
git_checkout_version('ermes', revision)
|
|
2225
2324
|
|
|
2226
|
-
Dir.chdir 'projects/
|
|
2325
|
+
Dir.chdir 'projects/ermes'
|
|
2227
2326
|
|
|
2228
2327
|
decrypt_secrets()
|
|
2229
2328
|
|
|
2230
2329
|
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2231
|
-
exec_step 'prepare-docker-compose --directory
|
|
2330
|
+
exec_step 'prepare-docker-compose --directory ermes && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2331
|
+
|
|
2232
2332
|
[
|
|
2233
|
-
"docker
|
|
2234
|
-
|
|
2333
|
+
"if echo `docker network ls` | grep crash_default; \
|
|
2334
|
+
then echo 'crash_default network already existing'; \
|
|
2335
|
+
else docker network create crash_default; fi",
|
|
2336
|
+
'docker-compose build web'
|
|
2337
|
+
].each do |cmd|
|
|
2338
|
+
execute_command cmd
|
|
2339
|
+
end
|
|
2340
|
+
|
|
2341
|
+
[ "docker-compose run --rm -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2342
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2343
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2344
|
+
mix phx.digest && \
|
|
2345
|
+
MIX_ENV=dev mix compile.sms && \
|
|
2346
|
+
MIX_ENV=dev mix compile.html && \
|
|
2347
|
+
MIX_ENV=dev mix compile.heml && \
|
|
2348
|
+
rm -rf _build/qa/rel/ && \
|
|
2349
|
+
mix release --env=qa'"
|
|
2235
2350
|
].each do |cmd|
|
|
2236
2351
|
execute_command cmd
|
|
2237
2352
|
end
|
|
2238
2353
|
|
|
2239
2354
|
cleanup_containers
|
|
2240
2355
|
|
|
2241
|
-
artifact_path = Dir.glob(
|
|
2242
|
-
upload_artifact(artifact_path, "microservices/
|
|
2356
|
+
artifact_path = Dir.glob("_build/qa/rel/ermes/releases/*/ermes.tar.gz").first
|
|
2357
|
+
upload_artifact(artifact_path, "microservices/ermes/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2243
2358
|
|
|
2244
2359
|
Dir.chdir '../../'
|
|
2245
2360
|
end
|
|
2246
2361
|
|
|
2247
|
-
def
|
|
2248
|
-
output "Preparo l'artifact
|
|
2362
|
+
def create_fidaty_artifact(revision)
|
|
2363
|
+
output "Preparo l'artifact fidaty .zip\n".yellow
|
|
2249
2364
|
|
|
2250
|
-
git_checkout_version('
|
|
2365
|
+
git_checkout_version('fidaty', revision)
|
|
2251
2366
|
|
|
2252
|
-
Dir.chdir 'projects/
|
|
2367
|
+
Dir.chdir 'projects/fidaty'
|
|
2253
2368
|
|
|
2254
2369
|
decrypt_secrets()
|
|
2255
2370
|
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
end
|
|
2269
|
-
|
|
2270
|
-
cleanup_containers
|
|
2271
|
-
else
|
|
2272
|
-
[
|
|
2273
|
-
"docker-compose build web",
|
|
2274
|
-
"docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh leftorium_web \
|
|
2275
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2276
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2277
|
-
rm -rf _build/qa/rel/ && \
|
|
2278
|
-
mix release --env=qa'"
|
|
2279
|
-
].each do |cmd|
|
|
2280
|
-
execute_command cmd
|
|
2281
|
-
end
|
|
2371
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2372
|
+
exec_step 'prepare-docker-compose --directory fidaty && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2373
|
+
[
|
|
2374
|
+
"docker-compose build web",
|
|
2375
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2376
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2377
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2378
|
+
mix phx.digest && \
|
|
2379
|
+
rm -rf _build/qa/rel/ && \
|
|
2380
|
+
mix release --env=qa'"
|
|
2381
|
+
].each do |cmd|
|
|
2382
|
+
execute_command cmd
|
|
2282
2383
|
end
|
|
2283
2384
|
|
|
2284
|
-
|
|
2285
|
-
|
|
2385
|
+
cleanup_containers
|
|
2386
|
+
|
|
2387
|
+
artifact_path = Dir.glob("_build/qa/rel/fidaty/releases/*/fidaty.tar.gz").first
|
|
2388
|
+
upload_artifact(artifact_path, "microservices/fidaty/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2286
2389
|
|
|
2287
2390
|
Dir.chdir '../../'
|
|
2288
2391
|
end
|
|
@@ -2296,83 +2399,88 @@ class Release
|
|
|
2296
2399
|
|
|
2297
2400
|
decrypt_secrets()
|
|
2298
2401
|
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2304
|
-
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
execute_command cmd
|
|
2312
|
-
end
|
|
2313
|
-
|
|
2314
|
-
cleanup_containers
|
|
2315
|
-
else
|
|
2316
|
-
[
|
|
2317
|
-
"docker-compose build web",
|
|
2318
|
-
"docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh hal9000_web \
|
|
2319
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2320
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2321
|
-
mix phx.digest && \
|
|
2322
|
-
rm -rf _build/qa/rel/ && \
|
|
2323
|
-
mix release --env=qa'"
|
|
2324
|
-
].each do |cmd|
|
|
2325
|
-
execute_command cmd
|
|
2326
|
-
end
|
|
2402
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2403
|
+
exec_step 'prepare-docker-compose --directory hal9000 && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2404
|
+
[
|
|
2405
|
+
"docker-compose build web",
|
|
2406
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2407
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2408
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2409
|
+
mix phx.digest assets -o priv/static && \
|
|
2410
|
+
rm -rf _build/qa/rel/ && \
|
|
2411
|
+
mix release --env=qa'"
|
|
2412
|
+
].each do |cmd|
|
|
2413
|
+
execute_command cmd
|
|
2327
2414
|
end
|
|
2328
2415
|
|
|
2416
|
+
cleanup_containers
|
|
2417
|
+
|
|
2329
2418
|
artifact_path = Dir.glob("_build/qa/rel/hal9000/releases/*/hal9000.tar.gz").first
|
|
2330
2419
|
upload_artifact(artifact_path, "microservices/hal9000/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2331
2420
|
|
|
2332
2421
|
Dir.chdir '../../'
|
|
2333
2422
|
end
|
|
2334
2423
|
|
|
2335
|
-
def
|
|
2336
|
-
output "Preparo l'artifact
|
|
2424
|
+
def create_hutch_artifact(revision)
|
|
2425
|
+
output "Preparo l'artifact hutch\n".yellow
|
|
2337
2426
|
|
|
2338
|
-
git_checkout_version('
|
|
2427
|
+
git_checkout_version('hutch', revision)
|
|
2339
2428
|
|
|
2340
|
-
Dir.chdir 'projects/
|
|
2429
|
+
Dir.chdir 'projects/hutch'
|
|
2341
2430
|
|
|
2342
|
-
|
|
2431
|
+
version = `git rev-parse HEAD`
|
|
2343
2432
|
|
|
2344
|
-
|
|
2345
|
-
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2346
|
-
exec_step 'prepare-docker-compose --directory fidaty && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2347
|
-
[
|
|
2348
|
-
"docker-compose build web",
|
|
2349
|
-
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2350
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2351
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2352
|
-
mix phx.digest && \
|
|
2353
|
-
rm -rf _build/qa/rel/ && \
|
|
2354
|
-
mix release --env=qa'"
|
|
2355
|
-
].each do |cmd|
|
|
2356
|
-
execute_command cmd
|
|
2357
|
-
end
|
|
2433
|
+
decrypt_secrets() unless File.exist?('config/secrets.yml')
|
|
2358
2434
|
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2435
|
+
exec_step 'cp docker-compose-ci.yml docker-compose.yml'
|
|
2436
|
+
exec_step 'prepare-docker-compose --directory hutch && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2437
|
+
exec_step "sed s/qa_deploy_id/#{get_deploy_id}/ .env.dist.qa"
|
|
2438
|
+
exec_step "cp .env.dist.qa .env"
|
|
2439
|
+
exec_step "rm -fr peano"
|
|
2440
|
+
|
|
2441
|
+
[
|
|
2442
|
+
"sed -i 's/USER app/USER root/g' Dockerfile",
|
|
2443
|
+
"docker-compose build web",
|
|
2444
|
+
"docker-compose run -w $PWD -u root -e ELM_APP_STARSKY_URL=https://#{get_route53_hostname("starsky")} --entrypoint /bin/sh web \
|
|
2445
|
+
'-c' 'yarn && yarn run build \
|
|
2446
|
+
&& tar cfz #{revision}-qa.tar.gz *'"
|
|
2447
|
+
].each do |cmd|
|
|
2448
|
+
execute_command cmd
|
|
2372
2449
|
end
|
|
2373
2450
|
|
|
2374
|
-
artifact_path =
|
|
2375
|
-
|
|
2451
|
+
artifact_path = "./#{revision}-qa.tar.gz"
|
|
2452
|
+
|
|
2453
|
+
upload_artifact(artifact_path, "microservices/hutch/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2454
|
+
|
|
2455
|
+
Dir.chdir '../../'
|
|
2456
|
+
end
|
|
2457
|
+
|
|
2458
|
+
def create_leftorium_artifact(revision)
|
|
2459
|
+
output "Preparo l'artifact leftorium .zip\n".yellow
|
|
2460
|
+
|
|
2461
|
+
git_checkout_version('leftorium', revision)
|
|
2462
|
+
|
|
2463
|
+
Dir.chdir 'projects/leftorium'
|
|
2464
|
+
|
|
2465
|
+
decrypt_secrets()
|
|
2466
|
+
|
|
2467
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2468
|
+
exec_step 'prepare-docker-compose --directory leftorium && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2469
|
+
[
|
|
2470
|
+
"docker-compose build web",
|
|
2471
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2472
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2473
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2474
|
+
rm -rf _build/qa/rel/ && \
|
|
2475
|
+
mix release --env=qa'"
|
|
2476
|
+
].each do |cmd|
|
|
2477
|
+
execute_command cmd
|
|
2478
|
+
end
|
|
2479
|
+
|
|
2480
|
+
cleanup_containers
|
|
2481
|
+
|
|
2482
|
+
artifact_path = Dir.glob('_build/qa/rel/leftorium/releases/*/leftorium.tar.gz').first
|
|
2483
|
+
upload_artifact(artifact_path, "microservices/leftorium/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2376
2484
|
|
|
2377
2485
|
Dir.chdir '../../'
|
|
2378
2486
|
end
|
|
@@ -2386,184 +2494,121 @@ class Release
|
|
|
2386
2494
|
|
|
2387
2495
|
decrypt_secrets() unless File.exist?('config/secrets.yml')
|
|
2388
2496
|
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
execute_command cmd
|
|
2401
|
-
end
|
|
2402
|
-
|
|
2403
|
-
cleanup_containers
|
|
2404
|
-
else
|
|
2405
|
-
[
|
|
2406
|
-
"docker-compose build web",
|
|
2407
|
-
"docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh peano_web \
|
|
2408
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2409
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2410
|
-
rm -rf _build/qa/rel/ && \
|
|
2411
|
-
mix release --env=qa'"
|
|
2412
|
-
].each do |cmd|
|
|
2413
|
-
execute_command cmd
|
|
2414
|
-
end
|
|
2497
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2498
|
+
exec_step 'prepare-docker-compose --directory peano && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2499
|
+
[
|
|
2500
|
+
"docker-compose build web",
|
|
2501
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2502
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2503
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2504
|
+
rm -rf _build/qa/rel/ && \
|
|
2505
|
+
mix release --env=qa'"
|
|
2506
|
+
].each do |cmd|
|
|
2507
|
+
execute_command cmd
|
|
2415
2508
|
end
|
|
2416
2509
|
|
|
2510
|
+
cleanup_containers
|
|
2511
|
+
|
|
2417
2512
|
artifact_path = Dir.glob("_build/qa/rel/peano/releases/*/peano.tar.gz").first
|
|
2418
2513
|
upload_artifact(artifact_path, "microservices/peano/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2419
2514
|
|
|
2420
2515
|
Dir.chdir '../../'
|
|
2421
2516
|
end
|
|
2422
2517
|
|
|
2423
|
-
def
|
|
2424
|
-
output "Preparo l'artifact
|
|
2425
|
-
|
|
2426
|
-
git_checkout_version('rogoreport', revision)
|
|
2518
|
+
def create_prima_artifact(revision, branch_name, deploy_id, minimal = false)
|
|
2519
|
+
output "Preparo l'artifact prima .zip\n".yellow
|
|
2427
2520
|
|
|
2428
|
-
|
|
2521
|
+
git_checkout_version('prima', revision)
|
|
2429
2522
|
|
|
2430
|
-
|
|
2523
|
+
Dir.chdir 'projects/prima'
|
|
2431
2524
|
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2438
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2439
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2440
|
-
rm -rf _build/qa/rel/ && \
|
|
2441
|
-
mix release --name=rogoreport --env=qa'"
|
|
2442
|
-
].each do |cmd|
|
|
2443
|
-
execute_command cmd
|
|
2525
|
+
['vendor'].each do |dir|
|
|
2526
|
+
unless File.directory?(dir)
|
|
2527
|
+
if File.directory?("../../../prima/#{dir}")
|
|
2528
|
+
exec_step "rsync -a ../../../prima/#{dir} ."
|
|
2529
|
+
end
|
|
2444
2530
|
end
|
|
2531
|
+
end
|
|
2445
2532
|
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
rm -rf _build/qa/rel/ && \
|
|
2455
|
-
mix release --env=qa'"
|
|
2456
|
-
].each do |cmd|
|
|
2457
|
-
execute_command cmd
|
|
2458
|
-
end
|
|
2533
|
+
exec_step 'mv docker-compose-ci.yml docker-compose.yml'
|
|
2534
|
+
exec_step 'prepare-docker-compose --directory prima'
|
|
2535
|
+
exec_step 'sed -i "s/\\/home\\/app/\\/root/g" docker-compose.yml'
|
|
2536
|
+
`sed -i 's/"@prima-assicurazioni/pyxis-npm": ".*",/"@prima-assicurazioni/pyxis-npm": "#{@pyxis_version}",/' package.json` if deploy_pyxis?
|
|
2537
|
+
[
|
|
2538
|
+
"bin/qa_build_artifact.sh #{branch_name} #{'update' if @deploy_update}"
|
|
2539
|
+
].each do |cmd|
|
|
2540
|
+
execute_command cmd
|
|
2459
2541
|
end
|
|
2460
2542
|
|
|
2461
|
-
|
|
2462
|
-
upload_artifact(artifact_path, "microservices/rogoreport/rogoreport-#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2543
|
+
cleanup_containers
|
|
2463
2544
|
|
|
2464
|
-
Dir.chdir
|
|
2545
|
+
Dir.chdir "../../"
|
|
2465
2546
|
end
|
|
2466
2547
|
|
|
2467
|
-
def
|
|
2468
|
-
|
|
2548
|
+
def create_pyxis_artifact(revision, deploy_id)
|
|
2549
|
+
if (deploy_pyxis?)
|
|
2550
|
+
output "Preparo l'artifact pyxis\n".yellow
|
|
2469
2551
|
|
|
2470
|
-
|
|
2552
|
+
git_checkout_version('pyxis-npm', revision)
|
|
2471
2553
|
|
|
2472
|
-
|
|
2554
|
+
Dir.chdir 'projects/pyxis-npm'
|
|
2473
2555
|
|
|
2474
|
-
|
|
2556
|
+
decrypt_secrets()
|
|
2475
2557
|
|
|
2476
|
-
|
|
2558
|
+
exec_step 'mv .fakenpmrc .npmrc'
|
|
2477
2559
|
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2478
|
-
exec_step 'prepare-docker-compose --directory
|
|
2560
|
+
exec_step 'prepare-docker-compose --directory pyxis-npm && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2561
|
+
exec_step 'docker-compose build web'
|
|
2562
|
+
|
|
2563
|
+
exec_step "docker-compose run -w $PWD -u root -e NPM_TOKEN=$NPM_TOKEN --entrypoint /bin/sh web \
|
|
2564
|
+
'-c' 'npm view prima-assicurazioni/pyxis-npm versions --json > versions.json'" # posso recuperare le versioni pubblicate solo da dentro al container, scrivo su un file che leggo subito dopo
|
|
2565
|
+
published_versions = `cat versions.json`
|
|
2566
|
+
qa_versions = JSON.parse(published_versions).select{ |version| version.include? get_pyxis_version(deploy_id) }
|
|
2567
|
+
|
|
2568
|
+
@pyxis_version = "0.#{get_pyxis_version(deploy_id)}.#{qa_versions.size}"
|
|
2569
|
+
|
|
2570
|
+
`sed -i '3s/".*/"version": "#{@pyxis_version}",/' package.json`
|
|
2479
2571
|
[
|
|
2480
|
-
"docker-compose
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
mix phx.digest && \
|
|
2485
|
-
rm -rf _build/qa/rel/ && \
|
|
2486
|
-
mix release --env=qa'"
|
|
2572
|
+
"docker-compose run -w $PWD -u root -e NPM_TOKEN=$NPM_TOKEN --entrypoint /bin/sh web \
|
|
2573
|
+
'-c' 'yarn install && \
|
|
2574
|
+
yarn build:prod && \
|
|
2575
|
+
npm publish'"
|
|
2487
2576
|
].each do |cmd|
|
|
2488
2577
|
execute_command cmd
|
|
2489
2578
|
end
|
|
2490
2579
|
|
|
2491
2580
|
cleanup_containers
|
|
2492
|
-
|
|
2493
|
-
[
|
|
2494
|
-
"docker-compose build web",
|
|
2495
|
-
"docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh assange_web \
|
|
2496
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2497
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2498
|
-
mix phx.digest && \
|
|
2499
|
-
rm -rf _build/qa/rel/ && \
|
|
2500
|
-
mix release --env=qa'"
|
|
2501
|
-
].each do |cmd|
|
|
2502
|
-
execute_command cmd
|
|
2503
|
-
end
|
|
2581
|
+
Dir.chdir '../../'
|
|
2504
2582
|
end
|
|
2505
|
-
|
|
2506
|
-
artifact_path = Dir.glob("_build/qa/rel/assange/releases/*/assange.tar.gz").first
|
|
2507
|
-
upload_artifact(artifact_path, "microservices/assange/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2508
|
-
|
|
2509
|
-
Dir.chdir '../../'
|
|
2510
2583
|
end
|
|
2511
2584
|
|
|
2512
|
-
def
|
|
2513
|
-
output "Preparo l'artifact
|
|
2585
|
+
def create_rachele_artifact(revision)
|
|
2586
|
+
output "Preparo l'artifact rachele .zip\n".yellow
|
|
2514
2587
|
|
|
2515
|
-
git_checkout_version('
|
|
2588
|
+
git_checkout_version('rachele', revision)
|
|
2516
2589
|
|
|
2517
|
-
Dir.chdir 'projects/
|
|
2590
|
+
Dir.chdir 'projects/rachele'
|
|
2518
2591
|
|
|
2519
2592
|
decrypt_secrets()
|
|
2520
2593
|
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
exec_step 'prepare-docker-compose --directory activia && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2524
|
-
[
|
|
2525
|
-
"docker-compose build web",
|
|
2526
|
-
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2527
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2528
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2529
|
-
cd assets && \
|
|
2530
|
-
rm -rf node_modules && \
|
|
2531
|
-
yarn --cache-folder ~/.cache/yarn && \
|
|
2532
|
-
sysconfcpus -n 2 ./node_modules/.bin/webpack --mode production && \
|
|
2533
|
-
cd .. && \
|
|
2534
|
-
mix phx.digest && \
|
|
2535
|
-
rm -rf _build/qa/rel/ && \
|
|
2536
|
-
mix release --env=qa'"
|
|
2537
|
-
].each do |cmd|
|
|
2538
|
-
execute_command cmd
|
|
2539
|
-
end
|
|
2594
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2595
|
+
exec_step 'prepare-docker-compose --directory rachele && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2540
2596
|
|
|
2541
|
-
|
|
2542
|
-
else
|
|
2543
|
-
[
|
|
2544
|
-
"docker-compose build web",
|
|
2545
|
-
"docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh activia_web \
|
|
2546
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2547
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2548
|
-
cd assets && \
|
|
2549
|
-
rm -rf node_modules && \
|
|
2550
|
-
yarn --cache-folder ~/.cache/yarn && \
|
|
2551
|
-
sysconfcpus -n 2 ./node_modules/.bin/webpack --mode production && \
|
|
2552
|
-
cd .. && \
|
|
2553
|
-
mix phx.digest && \
|
|
2554
|
-
rm -rf _build/qa/rel/ && \
|
|
2555
|
-
mix release --env=qa'"
|
|
2556
|
-
].each do |cmd|
|
|
2557
|
-
execute_command cmd
|
|
2558
|
-
end
|
|
2559
|
-
end
|
|
2597
|
+
execute_command "docker-compose build web"
|
|
2560
2598
|
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2599
|
+
[ "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2600
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2601
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2602
|
+
rm -rf _build/qa/rel/ && \
|
|
2603
|
+
mix release --env=qa'"
|
|
2604
|
+
].each do |cmd|
|
|
2605
|
+
execute_command cmd
|
|
2565
2606
|
end
|
|
2566
|
-
|
|
2607
|
+
|
|
2608
|
+
cleanup_containers
|
|
2609
|
+
|
|
2610
|
+
artifact_path = Dir.glob("_build/qa/rel/rachele/releases/*/rachele.tar.gz").first
|
|
2611
|
+
upload_artifact(artifact_path, "microservices/rachele/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2567
2612
|
|
|
2568
2613
|
Dir.chdir '../../'
|
|
2569
2614
|
end
|
|
@@ -2577,101 +2622,54 @@ class Release
|
|
|
2577
2622
|
|
|
2578
2623
|
decrypt_secrets()
|
|
2579
2624
|
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
execute_command cmd
|
|
2593
|
-
end
|
|
2594
|
-
|
|
2595
|
-
cleanup_containers
|
|
2596
|
-
else
|
|
2597
|
-
[
|
|
2598
|
-
"docker-compose build web",
|
|
2599
|
-
"docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh roger_web \
|
|
2600
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2601
|
-
mix deps.get && mix compile && mix deps.compile && \
|
|
2602
|
-
mix phx.digest && \
|
|
2603
|
-
rm -rf _build/qa/rel/ && \
|
|
2604
|
-
mix release --env=qa'"
|
|
2605
|
-
].each do |cmd|
|
|
2606
|
-
execute_command cmd
|
|
2607
|
-
end
|
|
2625
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2626
|
+
exec_step 'prepare-docker-compose --directory roger && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2627
|
+
[
|
|
2628
|
+
"docker-compose build web",
|
|
2629
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2630
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2631
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2632
|
+
mix phx.digest && \
|
|
2633
|
+
rm -rf _build/qa/rel/ && \
|
|
2634
|
+
mix release --env=qa'"
|
|
2635
|
+
].each do |cmd|
|
|
2636
|
+
execute_command cmd
|
|
2608
2637
|
end
|
|
2609
2638
|
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
artifact_path = Dir.glob("_build/qa/rel/roger/releases/*/roger.tar.gz").first
|
|
2614
|
-
end
|
|
2639
|
+
cleanup_containers
|
|
2640
|
+
|
|
2641
|
+
artifact_path = Dir.glob("_build/qa/rel/roger/releases/*/roger.tar.gz").first
|
|
2615
2642
|
upload_artifact(artifact_path, "microservices/roger/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2616
2643
|
|
|
2617
2644
|
Dir.chdir '../../'
|
|
2618
2645
|
end
|
|
2619
2646
|
|
|
2620
|
-
def
|
|
2621
|
-
output "Preparo l'artifact
|
|
2622
|
-
|
|
2623
|
-
git_checkout_version('borat', revision)
|
|
2647
|
+
def create_rogoreport_artifact(revision)
|
|
2648
|
+
output "Preparo l'artifact rogoreport .zip\n".yellow
|
|
2624
2649
|
|
|
2625
|
-
|
|
2650
|
+
git_checkout_version('rogoreport', revision)
|
|
2626
2651
|
|
|
2627
|
-
|
|
2652
|
+
Dir.chdir 'projects/rogoreport'
|
|
2628
2653
|
|
|
2629
|
-
|
|
2630
|
-
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2631
|
-
exec_step 'prepare-docker-compose --directory borat && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2632
|
-
[
|
|
2633
|
-
"docker network create borat_network || true",
|
|
2634
|
-
"docker-compose build web",
|
|
2635
|
-
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2636
|
-
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2637
|
-
mix deps.get && \
|
|
2638
|
-
cd assets && \
|
|
2639
|
-
yarn --cache-folder ~/.cache/yarn && \
|
|
2640
|
-
./node_modules/.bin/elm-github-install && \
|
|
2641
|
-
sysconfcpus -n 2 ./node_modules/.bin/webpack -p --config config/webpack.config.prod.js && \
|
|
2642
|
-
cd ../ && \
|
|
2643
|
-
mix phx.digest && \
|
|
2644
|
-
mix compile && mix deps.compile && \
|
|
2645
|
-
rm -rf _build/qa/rel/ && \
|
|
2646
|
-
mix release --env=qa'"
|
|
2647
|
-
].each do |cmd|
|
|
2648
|
-
execute_command cmd
|
|
2649
|
-
end
|
|
2654
|
+
decrypt_secrets() unless File.exist?('config/secrets.yml')
|
|
2650
2655
|
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
sysconfcpus -n 2 ./node_modules/.bin/webpack -p --config config/webpack.config.prod.js && \
|
|
2663
|
-
cd ../ && \
|
|
2664
|
-
mix phx.digest && \
|
|
2665
|
-
mix compile && mix deps.compile && \
|
|
2666
|
-
rm -rf _build/qa/rel/ && \
|
|
2667
|
-
mix release --env=qa'"
|
|
2668
|
-
].each do |cmd|
|
|
2669
|
-
execute_command cmd
|
|
2670
|
-
end
|
|
2656
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2657
|
+
exec_step 'prepare-docker-compose --directory rogoreport && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2658
|
+
[
|
|
2659
|
+
"docker-compose build web",
|
|
2660
|
+
"docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2661
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2662
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2663
|
+
rm -rf _build/qa/rel/ && \
|
|
2664
|
+
mix release --name=rogoreport --env=qa'"
|
|
2665
|
+
].each do |cmd|
|
|
2666
|
+
execute_command cmd
|
|
2671
2667
|
end
|
|
2672
2668
|
|
|
2673
|
-
|
|
2674
|
-
|
|
2669
|
+
cleanup_containers
|
|
2670
|
+
|
|
2671
|
+
artifact_path = Dir.glob("_build/qa/rel/rogoreport/releases/*/rogoreport.tar.gz").first
|
|
2672
|
+
upload_artifact(artifact_path, "microservices/rogoreport/rogoreport-#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2675
2673
|
|
|
2676
2674
|
Dir.chdir '../../'
|
|
2677
2675
|
end
|
|
@@ -2694,53 +2692,104 @@ class Release
|
|
|
2694
2692
|
Dir.chdir '../../'
|
|
2695
2693
|
end
|
|
2696
2694
|
|
|
2697
|
-
def
|
|
2698
|
-
|
|
2699
|
-
output "Preparo l'artifact prima .zip\n".yellow
|
|
2695
|
+
def create_starsky_artifact(revision)
|
|
2696
|
+
output "Preparo l'artifact starsky\n".yellow
|
|
2700
2697
|
|
|
2701
|
-
git_checkout_version('
|
|
2698
|
+
git_checkout_version('starsky', revision)
|
|
2702
2699
|
|
|
2703
|
-
Dir.chdir 'projects/
|
|
2700
|
+
Dir.chdir 'projects/starsky'
|
|
2704
2701
|
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2702
|
+
version = `git rev-parse HEAD`
|
|
2703
|
+
|
|
2704
|
+
#artifact_path = "/tmp/starsky-#{revision}-qa.tar.gz"
|
|
2705
|
+
|
|
2706
|
+
decrypt_secrets() unless File.exist?('config/secrets.yml')
|
|
2707
|
+
|
|
2708
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2709
|
+
exec_step 'prepare-docker-compose --directory starsky && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2710
|
+
exec_step "sed s/qa_deploy_id/#{get_deploy_id}/ .env.dist.qa"
|
|
2711
|
+
exec_step "cp .env.dist.qa .env"
|
|
2712
|
+
|
|
2713
|
+
[
|
|
2714
|
+
"sed -i 's/USER app/USER root/g' Dockerfile",
|
|
2715
|
+
"docker-compose build web",
|
|
2716
|
+
"docker-compose run -w $PWD -e BUILD_ENV=qa -u root --entrypoint /bin/sh web \
|
|
2717
|
+
'-c' 'cargo build --release -vv --features=qa \
|
|
2718
|
+
&& cargo build --bin migrate --release --features=qa \
|
|
2719
|
+
&& cargo build --bin rabbit_worker --release --features=qa \
|
|
2720
|
+
&& cp -p target/release/starsky . \
|
|
2721
|
+
&& cp -p target/release/migrate . \
|
|
2722
|
+
&& cp -p target/release/rabbit_worker . \
|
|
2723
|
+
&& tar cfz #{revision}-qa.tar.gz config starsky migrate rabbit_worker .env.dist.*'"
|
|
2724
|
+
].each do |cmd|
|
|
2725
|
+
execute_command cmd
|
|
2711
2726
|
end
|
|
2712
2727
|
|
|
2713
|
-
|
|
2714
|
-
# # backoffice-staging.prima.it
|
|
2715
|
-
# web_qa_host = get_route53_hostname("ecs-task-web-qa-notneeded")
|
|
2716
|
-
# # staging.prima.it
|
|
2717
|
-
# assange_qa_host = get_route53_hostname("ecs-task-assange-qa-notneeded")
|
|
2718
|
-
# # assange-staging.prima.it
|
|
2719
|
-
# if minimal
|
|
2720
|
-
# backoffice_qa_host = 'backoffice-staging.prima.it'
|
|
2721
|
-
# assange_qa_host = 'assange-staging.prima.it'
|
|
2722
|
-
# end
|
|
2728
|
+
artifact_path = "./#{revision}-qa.tar.gz"
|
|
2723
2729
|
|
|
2724
|
-
|
|
2725
|
-
exec_step 'mv docker-compose-ci.yml docker-compose.yml'
|
|
2726
|
-
exec_step 'prepare-docker-compose --directory prima'
|
|
2727
|
-
exec_step 'sed -i "s/\\/home\\/app/\\/root/g" docker-compose.yml'
|
|
2728
|
-
[
|
|
2729
|
-
"bin/qa_build_artifact.sh #{branch_name} #{'update' if @deploy_update}"
|
|
2730
|
-
].each do |cmd|
|
|
2731
|
-
execute_command cmd
|
|
2732
|
-
end
|
|
2730
|
+
upload_artifact(artifact_path, "microservices/starsky/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2733
2731
|
|
|
2734
|
-
|
|
2732
|
+
Dir.chdir '../../'
|
|
2733
|
+
end
|
|
2734
|
+
|
|
2735
|
+
def create_urania_artifact(revision)
|
|
2736
|
+
output "Preparo l'artifact urania .zip\n".yellow
|
|
2737
|
+
|
|
2738
|
+
git_checkout_version('urania', revision)
|
|
2739
|
+
|
|
2740
|
+
Dir.chdir 'projects/urania'
|
|
2741
|
+
|
|
2742
|
+
decrypt_secrets()
|
|
2743
|
+
|
|
2744
|
+
exec_step 'cp docker-compose.yml docker-compose-ci.yml'
|
|
2745
|
+
exec_step 'prepare-docker-compose --directory urania && cp docker-compose-qainit.yml docker-compose.yml'
|
|
2746
|
+
|
|
2747
|
+
execute_command "docker-compose build web"
|
|
2748
|
+
|
|
2749
|
+
[ "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
|
|
2750
|
+
'-c' 'mix local.hex --force && mix hex.info && \
|
|
2751
|
+
mix deps.get && mix compile && mix deps.compile && \
|
|
2752
|
+
rm -rf _build/qa/rel/ && \
|
|
2753
|
+
mix release --env=qa'"
|
|
2754
|
+
].each do |cmd|
|
|
2755
|
+
execute_command cmd
|
|
2756
|
+
end
|
|
2757
|
+
|
|
2758
|
+
cleanup_containers
|
|
2759
|
+
|
|
2760
|
+
artifact_path = Dir.glob("_build/qa/rel/urania/releases/*/urania.tar.gz").first
|
|
2761
|
+
upload_artifact(artifact_path, "microservices/urania/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
|
|
2762
|
+
|
|
2763
|
+
Dir.chdir '../../'
|
|
2764
|
+
end
|
|
2765
|
+
|
|
2766
|
+
def deploy_pyxis?
|
|
2767
|
+
if defined? @deploy_pyxis
|
|
2768
|
+
@deploy_pyxis
|
|
2735
2769
|
else
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
].
|
|
2739
|
-
|
|
2740
|
-
|
|
2770
|
+
pyxis_updated = `git log -p -1 --unified=0 | grep pyxis-npm:`.length > 0
|
|
2771
|
+
|
|
2772
|
+
update_pyxis = !@projects['pyxis-npm'].empty? && @projects['pyxis-npm'][:name] != 'master' && pyxis_updated
|
|
2773
|
+
|
|
2774
|
+
@deploy_pyxis = update_pyxis
|
|
2775
|
+
return update_pyxis
|
|
2741
2776
|
end
|
|
2777
|
+
end
|
|
2742
2778
|
|
|
2743
|
-
|
|
2779
|
+
def deploy_crash?
|
|
2780
|
+
crash_present = !@projects['crash'].empty? && @projects['crash'][:name] != 'master' && !@projects['crash'][:default_branch]
|
|
2781
|
+
leftorium_present = !@projects['leftorium'].empty? && @projects['leftorium'][:name] != 'master' && !@projects['leftorium'][:default_branch]
|
|
2782
|
+
crash_present || leftorium_present
|
|
2783
|
+
end
|
|
2784
|
+
|
|
2785
|
+
def deploy_starsky_hutch?
|
|
2786
|
+
starsky_present = !@projects['starsky'].nil? && !@projects['starsky'].empty? && @projects['starsky'][:name] != 'master' && !@projects['starsky'][:default_branch]
|
|
2787
|
+
hutch_present = !@projects['hutch'].nil? && !@projects['hutch'].empty? && @projects['hutch'][:name] != 'master' && !@projects['hutch'][:default_branch]
|
|
2788
|
+
starsky_present || hutch_present
|
|
2789
|
+
end
|
|
2790
|
+
|
|
2791
|
+
def get_pyxis_version(deploy_id)
|
|
2792
|
+
(deploy_id.delete '[a-z0]')[0..9]
|
|
2744
2793
|
end
|
|
2745
2794
|
|
|
2746
2795
|
def cleanup_containers
|
|
@@ -3009,20 +3058,11 @@ class Release
|
|
|
3009
3058
|
|
|
3010
3059
|
def decrypt_secrets()
|
|
3011
3060
|
docker_image = "prima/biscuit_populate_configs"
|
|
3012
|
-
|
|
3013
|
-
|
|
3014
|
-
|
|
3015
|
-
|
|
3016
|
-
|
|
3017
|
-
execute_command cmd
|
|
3018
|
-
end
|
|
3019
|
-
else
|
|
3020
|
-
[
|
|
3021
|
-
"docker pull #{docker_image}",
|
|
3022
|
-
"docker run -t --rm -v $HOME/.aws:/root/.aws -v $PWD:$PWD -w $PWD #{docker_image}"
|
|
3023
|
-
].each do |cmd|
|
|
3024
|
-
execute_command cmd
|
|
3025
|
-
end
|
|
3061
|
+
[
|
|
3062
|
+
"docker pull #{docker_image}",
|
|
3063
|
+
"docker run -t --rm -v $HOME/.aws:/root/.aws -w $PWD --volumes-from #{get_host_container_name} #{docker_image}"
|
|
3064
|
+
].each do |cmd|
|
|
3065
|
+
execute_command cmd
|
|
3026
3066
|
end
|
|
3027
3067
|
end
|
|
3028
3068
|
|
|
@@ -3037,15 +3077,16 @@ class Release
|
|
|
3037
3077
|
end
|
|
3038
3078
|
end
|
|
3039
3079
|
|
|
3040
|
-
def select_branches(
|
|
3080
|
+
def select_branches(project_names = nil)
|
|
3041
3081
|
output "Deploy feature menu"
|
|
3042
|
-
if
|
|
3082
|
+
if project_names.nil?
|
|
3043
3083
|
@projects.each{ |key, value| @projects[key] = choose_branch_to_deploy(key) }
|
|
3044
3084
|
else
|
|
3045
|
-
|
|
3046
|
-
|
|
3085
|
+
project_names.each do |project|
|
|
3086
|
+
@projects[project] = choose_branch_to_deploy(project)
|
|
3087
|
+
end
|
|
3047
3088
|
@projects.each_key do |branch_project|
|
|
3048
|
-
@projects[branch_project] = choose_branch_to_deploy(branch_project, true) unless branch_project
|
|
3089
|
+
@projects[branch_project] = choose_branch_to_deploy(branch_project, true) unless project_names.include? branch_project
|
|
3049
3090
|
end
|
|
3050
3091
|
end
|
|
3051
3092
|
end
|
|
@@ -3107,9 +3148,10 @@ if args.include?('--help')
|
|
|
3107
3148
|
end
|
|
3108
3149
|
|
|
3109
3150
|
gem_update = true
|
|
3110
|
-
if args.include?('
|
|
3111
|
-
args.delete('--no-gem-update')
|
|
3151
|
+
if args.include?('no-gem-update')
|
|
3112
3152
|
gem_update = false
|
|
3113
3153
|
end
|
|
3114
3154
|
|
|
3155
|
+
args.delete('no-gem-update')
|
|
3156
|
+
|
|
3115
3157
|
Release.new(gem_update).execute!(args)
|