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.
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-1Q0P0V213HYGW:1'
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 << "\n#{e.key.upcase}: #{e.value}"
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-" + calculate_deploy_id
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 calculate_deploy_id
709
- hash = Digest::MD5.hexdigest(ENV['DRONE_BRANCH'])
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 = get_ami_id("ecs-fleet-allinone-staging")
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 = calculate_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
- create_prima_artifact(@projects["prima"][:revision], @projects["prima"][:name], true) unless artifact_exists?('prima-artifacts-encrypted', "prima/#{@projects["prima"][:revision]}.tar.gz")
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 = calculate_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
- if key.to_s == 'crash'
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
- create_prima_artifact(@projects["prima"][:revision], @projects["prima"][:name]) unless artifact_exists?('prima-artifacts-encrypted', "prima/#{@projects["prima"][:revision]}.tar.gz")
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['rachele'][:revision]) unless artifact_exists?('prima-artifacts-encrypted', "microservices/crash/#{@projects['rachele'][:revision]}-qa.tar.gz")
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
- if @qainit
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 create_urania_artifact(revision)
2011
- output "Preparo l'artifact urania .zip\n".yellow
2149
+ def create_activia_artifact(revision)
2150
+ output "Preparo l'artifact activia .zip\n".yellow
2012
2151
 
2013
- git_checkout_version('urania', revision)
2152
+ git_checkout_version('activia', revision)
2014
2153
 
2015
- Dir.chdir 'projects/urania'
2154
+ Dir.chdir 'projects/activia'
2016
2155
 
2017
2156
  decrypt_secrets()
2018
2157
 
2019
- if @qainit
2020
- exec_step 'cp docker-compose.yml docker-compose-ci.yml'
2021
- exec_step 'prepare-docker-compose --directory urania && cp docker-compose-qainit.yml docker-compose.yml'
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
- execute_command "docker-compose build web"
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
- cleanup_containers
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 = Dir.glob("_build/qa/rel/urania/releases/*/urania.tar.gz").first
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 create_rachele_artifact(revision)
2055
- output "Preparo l'artifact rachele .zip\n".yellow
2186
+ def create_assange_artifact(revision)
2187
+ output "Preparo l'artifact assange .zip\n".yellow
2056
2188
 
2057
- git_checkout_version('rachele', revision)
2189
+ git_checkout_version('assange', revision)
2058
2190
 
2059
- Dir.chdir 'projects/rachele'
2191
+ Dir.chdir 'projects/assange'
2060
2192
 
2061
2193
  decrypt_secrets()
2062
2194
 
2063
- if @qainit
2064
- exec_step 'cp docker-compose.yml docker-compose-ci.yml'
2065
- exec_step 'prepare-docker-compose --directory rachele && cp docker-compose-qainit.yml docker-compose.yml'
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
- execute_command "docker-compose build web"
2209
+ cleanup_containers
2069
2210
 
2070
- if @qainit
2071
- [ "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
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
- cleanup_containers
2081
- else
2082
- [ "docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh rachele_web \
2083
- '-c' 'mix local.hex --force && mix hex.info && \
2084
- mix deps.get && mix compile && mix deps.compile && \
2085
- rm -rf _build/qa/rel/ && \
2086
- mix release --env=qa'"
2087
- ].each do |cmd|
2088
- execute_command cmd
2089
- end
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
- artifact_path = Dir.glob("_build/qa/rel/rachele/releases/*/rachele.tar.gz").first
2093
- upload_artifact(artifact_path, "microservices/rachele/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
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 create_ermes_artifact(revision)
2099
- output "Preparo l'artifact ermes .zip\n".yellow
2243
+ def create_borat_artifact(revision)
2244
+ output "Preparo l'artifact borat .zip\n".yellow
2100
2245
 
2101
- git_checkout_version('ermes', revision)
2246
+ git_checkout_version('borat', revision)
2102
2247
 
2103
- Dir.chdir 'projects/ermes'
2248
+ Dir.chdir 'projects/borat'
2104
2249
 
2105
2250
  decrypt_secrets()
2106
2251
 
2107
- if @qainit
2108
- exec_step 'cp docker-compose.yml docker-compose-ci.yml'
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
- "if echo `docker network ls` | grep crash_default; \
2113
- then echo 'crash_default network already existing'; \
2114
- else docker network create crash_default; fi",
2115
- 'docker-compose build web'
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
- if @qainit
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/ermes/releases/*/ermes.tar.gz").first
2148
- upload_artifact(artifact_path, "microservices/ermes/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
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
- if @qainit
2171
- `mv docker-compose-ci.yml docker-compose.yml`
2172
- exec_step 'prepare-docker-compose --directory crash && cp docker-compose-qainit.yml docker-compose.yml'
2173
- [
2174
- 'docker-compose build web',
2175
- "docker-compose run -w $PWD -u root -e MIX_ENV=qa -e ENV_HASH=#{deploy_id} web \
2176
- '-c' 'mix local.hex --force && mix hex.info && \
2177
- mix deps.get && \
2178
- cd assets && \
2179
- yarn --cache-folder ~/.cache/yarn && \
2180
- NODE_ENV=production sysconfcpus -n 1 yarn run build && \
2181
- cd ../ && \
2182
- mix release.clean --implode --no-confirm && \
2183
- mix phx.digest && \
2184
- mix deps.clean --all && \
2185
- mix deps.get && \
2186
- mix compile && mix release --env=qa'",
2187
- 'docker-compose down'
2188
- ].each do |cmd|
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 create_bburago_artifact(revision)
2222
- output "Preparo l'artifact bburago .zip\n".yellow
2320
+ def create_ermes_artifact(revision)
2321
+ output "Preparo l'artifact ermes .zip\n".yellow
2223
2322
 
2224
- git_checkout_version('bburago', revision)
2323
+ git_checkout_version('ermes', revision)
2225
2324
 
2226
- Dir.chdir 'projects/bburago'
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 bburago && cp docker-compose-qainit.yml docker-compose.yml'
2330
+ exec_step 'prepare-docker-compose --directory ermes && cp docker-compose-qainit.yml docker-compose.yml'
2331
+
2232
2332
  [
2233
- "docker-compose build web",
2234
- "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint deploy/create_qa_artifact web"
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('_build/qa/rel/bburago/releases/*/bburago.tar.gz').first
2242
- upload_artifact(artifact_path, "microservices/bburago/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
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 create_leftorium_artifact(revision)
2248
- output "Preparo l'artifact leftorium .zip\n".yellow
2362
+ def create_fidaty_artifact(revision)
2363
+ output "Preparo l'artifact fidaty .zip\n".yellow
2249
2364
 
2250
- git_checkout_version('leftorium', revision)
2365
+ git_checkout_version('fidaty', revision)
2251
2366
 
2252
- Dir.chdir 'projects/leftorium'
2367
+ Dir.chdir 'projects/fidaty'
2253
2368
 
2254
2369
  decrypt_secrets()
2255
2370
 
2256
- if @qainit
2257
- exec_step 'cp docker-compose.yml docker-compose-ci.yml'
2258
- exec_step 'prepare-docker-compose --directory leftorium && cp docker-compose-qainit.yml docker-compose.yml'
2259
- [
2260
- "docker-compose build web",
2261
- "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
2262
- '-c' 'mix local.hex --force && mix hex.info && \
2263
- mix deps.get && mix compile && mix deps.compile && \
2264
- rm -rf _build/qa/rel/ && \
2265
- mix release --env=qa'"
2266
- ].each do |cmd|
2267
- execute_command cmd
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
- artifact_path = Dir.glob('_build/qa/rel/leftorium/releases/*/leftorium.tar.gz').first
2285
- upload_artifact(artifact_path, "microservices/leftorium/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
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
- if @qainit
2300
- exec_step 'cp docker-compose.yml docker-compose-ci.yml'
2301
- exec_step 'prepare-docker-compose --directory hal9000 && cp docker-compose-qainit.yml docker-compose.yml'
2302
- [
2303
- "docker-compose build web",
2304
- "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
2305
- '-c' 'mix local.hex --force && mix hex.info && \
2306
- mix deps.get && mix compile && mix deps.compile && \
2307
- mix phx.digest assets -o priv/static && \
2308
- rm -rf _build/qa/rel/ && \
2309
- mix release --env=qa'"
2310
- ].each do |cmd|
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 create_fidaty_artifact(revision)
2336
- output "Preparo l'artifact fidaty .zip\n".yellow
2424
+ def create_hutch_artifact(revision)
2425
+ output "Preparo l'artifact hutch\n".yellow
2337
2426
 
2338
- git_checkout_version('fidaty', revision)
2427
+ git_checkout_version('hutch', revision)
2339
2428
 
2340
- Dir.chdir 'projects/fidaty'
2429
+ Dir.chdir 'projects/hutch'
2341
2430
 
2342
- decrypt_secrets()
2431
+ version = `git rev-parse HEAD`
2343
2432
 
2344
- if @qainit
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
- cleanup_containers
2360
- else
2361
- [
2362
- "docker-compose build web",
2363
- "docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh fidaty_web \
2364
- '-c' 'mix local.hex --force && mix hex.info && \
2365
- mix deps.get && mix compile && mix deps.compile && \
2366
- mix phx.digest && \
2367
- rm -rf _build/qa/rel/ && \
2368
- mix release --env=qa'"
2369
- ].each do |cmd|
2370
- execute_command cmd
2371
- end
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 = Dir.glob("_build/qa/rel/fidaty/releases/*/fidaty.tar.gz").first
2375
- upload_artifact(artifact_path, "microservices/fidaty/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
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
- if @qainit
2390
- exec_step 'cp docker-compose.yml docker-compose-ci.yml'
2391
- exec_step 'prepare-docker-compose --directory peano && cp docker-compose-qainit.yml docker-compose.yml'
2392
- [
2393
- "docker-compose build web",
2394
- "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
2395
- '-c' 'mix local.hex --force && mix hex.info && \
2396
- mix deps.get && mix compile && mix deps.compile && \
2397
- rm -rf _build/qa/rel/ && \
2398
- mix release --env=qa'"
2399
- ].each do |cmd|
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 create_rogoreport_artifact(revision)
2424
- output "Preparo l'artifact rogoreport .zip\n".yellow
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
- Dir.chdir 'projects/rogoreport'
2521
+ git_checkout_version('prima', revision)
2429
2522
 
2430
- decrypt_secrets() unless File.exist?('config/secrets.yml')
2523
+ Dir.chdir 'projects/prima'
2431
2524
 
2432
- if @qainit
2433
- exec_step 'cp docker-compose.yml docker-compose-ci.yml'
2434
- exec_step 'prepare-docker-compose --directory rogoreport && cp docker-compose-qainit.yml docker-compose.yml'
2435
- [
2436
- "docker-compose build web",
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
- cleanup_containers
2447
- else
2448
- [
2449
- "docker-compose build web",
2450
- "docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh rogoreport_web \
2451
- '-c' 'cat apps/escile/config/qa.exs && \
2452
- mix local.hex --force && mix hex.info && \
2453
- mix deps.get && mix compile && mix deps.compile && \
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
- artifact_path = Dir.glob("_build/qa/rel/rogoreport/releases/*/rogoreport.tar.gz").first
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 create_assange_artifact(revision)
2468
- output "Preparo l'artifact assange .zip\n".yellow
2548
+ def create_pyxis_artifact(revision, deploy_id)
2549
+ if (deploy_pyxis?)
2550
+ output "Preparo l'artifact pyxis\n".yellow
2469
2551
 
2470
- git_checkout_version('assange', revision)
2552
+ git_checkout_version('pyxis-npm', revision)
2471
2553
 
2472
- Dir.chdir 'projects/assange'
2554
+ Dir.chdir 'projects/pyxis-npm'
2473
2555
 
2474
- decrypt_secrets()
2556
+ decrypt_secrets()
2475
2557
 
2476
- if @qainit
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 assange && cp docker-compose-qainit.yml docker-compose.yml'
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 build web",
2481
- "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
2482
- '-c' 'mix local.hex --force && mix hex.info && \
2483
- mix deps.get && mix compile && mix deps.compile && \
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
- else
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 create_activia_artifact(revision)
2513
- output "Preparo l'artifact activia .zip\n".yellow
2585
+ def create_rachele_artifact(revision)
2586
+ output "Preparo l'artifact rachele .zip\n".yellow
2514
2587
 
2515
- git_checkout_version('activia', revision)
2588
+ git_checkout_version('rachele', revision)
2516
2589
 
2517
- Dir.chdir 'projects/activia'
2590
+ Dir.chdir 'projects/rachele'
2518
2591
 
2519
2592
  decrypt_secrets()
2520
2593
 
2521
- if @qainit
2522
- exec_step 'cp docker-compose.yml docker-compose-ci.yml'
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
- cleanup_containers
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
- if @qainit
2562
- artifact_path = Dir.glob("_build/qa/rel/activia/releases/*/activia.tar.gz").first
2563
- else
2564
- artifact_path = Dir.glob("_build/qa/rel/activia/releases/*/activia.tar.gz").first
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
- upload_artifact(artifact_path, "microservices/activia/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
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
- if @qainit
2581
- exec_step 'cp docker-compose.yml docker-compose-ci.yml'
2582
- exec_step 'prepare-docker-compose --directory roger && cp docker-compose-qainit.yml docker-compose.yml'
2583
- [
2584
- "docker-compose build web",
2585
- "docker-compose run -w $PWD -u root -e MIX_ENV=qa --entrypoint /bin/sh web \
2586
- '-c' 'mix local.hex --force && mix hex.info && \
2587
- mix deps.get && mix compile && mix deps.compile && \
2588
- mix phx.digest && \
2589
- rm -rf _build/qa/rel/ && \
2590
- mix release --env=qa'"
2591
- ].each do |cmd|
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
- if @qainit
2611
- artifact_path = Dir.glob("_build/qa/rel/roger/releases/*/roger.tar.gz").first
2612
- else
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 create_borat_artifact(revision)
2621
- output "Preparo l'artifact borat .zip\n".yellow
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
- Dir.chdir 'projects/borat'
2650
+ git_checkout_version('rogoreport', revision)
2626
2651
 
2627
- decrypt_secrets()
2652
+ Dir.chdir 'projects/rogoreport'
2628
2653
 
2629
- if @qainit
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
- cleanup_containers
2652
- else
2653
- [
2654
- "docker network create borat_network || true",
2655
- "docker-compose build web",
2656
- "docker run -v $PWD:/code -w /code -e MIX_ENV=qa --entrypoint /bin/sh web \
2657
- '-c' 'mix local.hex --force && mix hex.info && \
2658
- mix deps.get && \
2659
- cd assets && \
2660
- yarn --cache-folder ~/.cache/yarn && \
2661
- ./node_modules/.bin/elm-github-install && \
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
- artifact_path = Dir.glob("_build/qa/rel/borat/releases/*/borat.tar.gz").first
2674
- upload_artifact(artifact_path, "microservices/borat/#{revision}-qa.tar.gz", "#{@s3_bucket}-encrypted")
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 create_prima_artifact(revision, branch_name, minimal = false)
2698
- # @projects["prima"][:revision], @projects["prima"][:name], deploy_id, true
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('prima', revision)
2698
+ git_checkout_version('starsky', revision)
2702
2699
 
2703
- Dir.chdir 'projects/prima'
2700
+ Dir.chdir 'projects/starsky'
2704
2701
 
2705
- ['vendor'].each do |dir|
2706
- unless File.directory?(dir)
2707
- if File.directory?("../../../prima/#{dir}")
2708
- exec_step "rsync -a ../../../prima/#{dir} ."
2709
- end
2710
- end
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
- # backoffice_qa_host = get_route53_hostname("ecs-task-borat-qa-notneeded")
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
- if @qainit
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
- cleanup_containers
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
- "bin/local_build_artifact.sh #{branch_name} #{'update' if @deploy_update}"
2738
- ].each do |cmd|
2739
- execute_command cmd
2740
- end
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
- Dir.chdir "../../"
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
- if @qainit
3013
- [
3014
- "docker pull #{docker_image}",
3015
- "docker run -t --rm -v $HOME/.aws:/root/.aws -w $PWD --volumes-from #{get_host_container_name} #{docker_image}"
3016
- ].each do |cmd|
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(project_name = nil)
3080
+ def select_branches(project_names = nil)
3041
3081
  output "Deploy feature menu"
3042
- if project_name.nil?
3082
+ if project_names.nil?
3043
3083
  @projects.each{ |key, value| @projects[key] = choose_branch_to_deploy(key) }
3044
3084
  else
3045
- stop_unless File.directory?("./projects/#{project_name}"), "progetto #{project_name} inesistente o non supportato"
3046
- @projects[project_name] = choose_branch_to_deploy(project_name)
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 == project_name
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?('--no-gem-update')
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)