prima-twig 0.60.560 → 0.61.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/twig-deploy +1 -4
- data/bin/twig-feature +41 -80
- data/bin/twig-update-ami +1 -1
- data/lib/prima_aws_client.rb +1 -8
- data/lib/prima_twig.rb +1 -1
- metadata +3 -115
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b7fe6e793d7918dae758d6a790bdd77c00443c88f935aef69cdcbd6fbc59e38
|
4
|
+
data.tar.gz: c554ac218300687b47366785c270df602783f04c1003363d471597abbca10ac6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d463ea20979d3e7d8832a1ba536257ea3e4e0457ef047221c9862f41a7f74bd03d405270922d893f7d89f9aac13a2f4057c395bd6408f0eb86cc68d34c56e87d
|
7
|
+
data.tar.gz: aea5c6b038bb65da4ef094ce1c5dc5fc2347d4e2dd83b179047cd56b516d2f5b5d85d5095c3783a87586f4b184945b252fc00a8098903e1c4aa074a7bf728ca7
|
data/bin/twig-deploy
CHANGED
@@ -5,10 +5,7 @@ require_relative '../lib/prima_twig.rb'
|
|
5
5
|
require_relative '../lib/prima_aws_client.rb'
|
6
6
|
require 'colorize'
|
7
7
|
require 'highline/import'
|
8
|
-
require 'aws-sdk
|
9
|
-
require 'aws-sdk-cloudformation'
|
10
|
-
require 'aws-sdk-ecs'
|
11
|
-
require 'aws-sdk-s3'
|
8
|
+
require 'aws-sdk'
|
12
9
|
require 'redcarpet'
|
13
10
|
require 'mail'
|
14
11
|
require 'erb'
|
data/bin/twig-feature
CHANGED
@@ -26,7 +26,7 @@ class Release
|
|
26
26
|
@s3 = Aws::S3::Client.new
|
27
27
|
@s3_bucket = 'prima-artifacts'
|
28
28
|
@artifact_path = '/tmp/prima-artifact.zip'
|
29
|
-
@import_db_task = 'arn:aws:ecs:eu-west-1:001575623345:task-definition/ecs-task-db-restore2-TaskDefinitionDbRestore-
|
29
|
+
@import_db_task = 'arn:aws:ecs:eu-west-1:001575623345:task-definition/ecs-task-db-restore2-TaskDefinitionDbRestore-1BXH13XEVLPP0:1'
|
30
30
|
@cf_role = 'arn:aws:iam::001575623345:role/qainit-service-role-cloudformat-CloudformationRole-18KBZQIS148R9'
|
31
31
|
@dns_record_identifier = nil
|
32
32
|
@ecs_cluster_name = nil
|
@@ -59,7 +59,6 @@ class Release
|
|
59
59
|
@base_stack_name_alb = 'ecs-alb-http-public-qa-'
|
60
60
|
@base_stack_name_alb_ws = 'ecs-alb-ws-public-qa-'
|
61
61
|
@git_branch = ''
|
62
|
-
@cloudflare = Rubyflare.connect_with(ENV['CLOUDFLARE_EMAIL'], ENV['CLOUDFLARE_APIKEY'])
|
63
62
|
end
|
64
63
|
|
65
64
|
def execute!(args)
|
@@ -140,6 +139,7 @@ class Release
|
|
140
139
|
output 'Disable aggregator'
|
141
140
|
|
142
141
|
output "Recupero le informazioni relative al puntamento dei record DNS..."
|
142
|
+
cloudflare = Rubyflare.connect_with(@prima.config['cloudflare_email'], @prima.config['cloudflare_apikey'])
|
143
143
|
output "Recupero le informazioni sui QA attivi..."
|
144
144
|
stack_list, envs = get_stacks()
|
145
145
|
|
@@ -151,7 +151,7 @@ class Release
|
|
151
151
|
end.is_a?(Aws::CloudFormation::Types::Tag)
|
152
152
|
aggregator_enabled
|
153
153
|
end[0]
|
154
|
-
dns_records =
|
154
|
+
dns_records = cloudflare.get("zones/1fb634f19c43dfb0162cc4cb91915da2/dns_records", {per_page: 100, type: 'CNAME', content: get_alb_host(@base_stack_name_alb + env_hash[3..8])})
|
155
155
|
stop_if dns_records.body[:result].empty?, "I record DNS degli aggregatori non stanno puntando ad un QA".red
|
156
156
|
change_hostname_priority(env_hash, hostname_pattern_priority())
|
157
157
|
dns_to_staging(env_hash)
|
@@ -167,7 +167,8 @@ class Release
|
|
167
167
|
output 'Enable aggregator'
|
168
168
|
|
169
169
|
output 'Recupero le informazioni relative al puntamento dei record DNS...'
|
170
|
-
|
170
|
+
cloudflare = Rubyflare.connect_with(@prima.config['cloudflare_email'], @prima.config['cloudflare_apikey'])
|
171
|
+
dns_records = cloudflare.get('zones/1fb634f19c43dfb0162cc4cb91915da2/dns_records', { per_page: 100, type: 'CNAME', content: 'staging.prima.it' })
|
171
172
|
stop_if dns_records.body[:result].empty?, "I record DNS degli aggregatori stanno gia' puntando ad un QA".red
|
172
173
|
|
173
174
|
output "Recupero le informazioni sui QA attivi..."
|
@@ -197,7 +198,7 @@ class Release
|
|
197
198
|
dns_records.body[:result].each do |dns|
|
198
199
|
if dns[:name] =~ /^\w+\-\w+\-staging\.prima\.it$/
|
199
200
|
output "Changing #{dns[:name]} DNS record"
|
200
|
-
|
201
|
+
cloudflare.put("zones/1fb634f19c43dfb0162cc4cb91915da2/dns_records/#{dns[:id]}", {type: 'CNAME', name: dns[:name], content: get_alb_host(@base_stack_name_alb + env_hash[3..8]), proxied: true, ttl: 1})
|
201
202
|
end
|
202
203
|
end
|
203
204
|
|
@@ -256,11 +257,12 @@ class Release
|
|
256
257
|
|
257
258
|
def dns_to_staging(env_hash)
|
258
259
|
output "Recupero le informazioni relative al puntamento dei record DNS..."
|
259
|
-
|
260
|
+
cloudflare = Rubyflare.connect_with(@prima.config['cloudflare_email'], @prima.config['cloudflare_apikey'])
|
261
|
+
dns_records = cloudflare.get("zones/1fb634f19c43dfb0162cc4cb91915da2/dns_records", {per_page: 100, type: 'CNAME', content: get_alb_host(@base_stack_name_alb + env_hash[3..8])})
|
260
262
|
dns_records.body[:result].each do |dns|
|
261
263
|
if dns[:name] =~ /^\w+\-\w+\-staging\.prima\.it$/
|
262
264
|
output "Changing #{dns[:name]} DNS record"
|
263
|
-
|
265
|
+
cloudflare.put("zones/1fb634f19c43dfb0162cc4cb91915da2/dns_records/#{dns[:id]}", {type: 'CNAME', name: dns[:name], content: 'staging.prima.it', proxied: true, ttl: 1})
|
264
266
|
end
|
265
267
|
end
|
266
268
|
end
|
@@ -594,8 +596,6 @@ class Release
|
|
594
596
|
delete_stack(@base_stack_name_alb + env_hash[3..8]) if stack_exists?(@base_stack_name_alb + env_hash[3..8])
|
595
597
|
delete_stack(@base_stack_name_alb_ws + env_hash[3..8]) if stack_exists?(@base_stack_name_alb_ws + env_hash[3..8])
|
596
598
|
`git checkout master && git push origin --delete ${DRONE_BRANCH}`
|
597
|
-
output "Cancello il record DNS utilizzato da Lighthouse"
|
598
|
-
delete_lighthouse_dns()
|
599
599
|
output "Finito!".green
|
600
600
|
|
601
601
|
if @qainit
|
@@ -1532,6 +1532,10 @@ class Release
|
|
1532
1532
|
parameter_key: "WebQaBaseHostname",
|
1533
1533
|
parameter_value: "#{@dns_record_identifier}.qa.colaster.com"
|
1534
1534
|
},
|
1535
|
+
{
|
1536
|
+
parameter_key: "HostnamePattern",
|
1537
|
+
parameter_value: "ww*-#{@dns_record_identifier}.qa.colaster.com"
|
1538
|
+
},
|
1535
1539
|
{
|
1536
1540
|
parameter_key: "HostnamePatternPriority",
|
1537
1541
|
parameter_value: hostname_pattern_priority
|
@@ -1562,7 +1566,7 @@ class Release
|
|
1562
1566
|
},
|
1563
1567
|
{
|
1564
1568
|
parameter_key: "HostnamePattern",
|
1565
|
-
parameter_value: "www-#{@dns_record_identifier}
|
1569
|
+
parameter_value: "www-#{@dns_record_identifier}.qa.colaster.com"
|
1566
1570
|
}
|
1567
1571
|
]
|
1568
1572
|
if stack_exists?(stack_name_web)
|
@@ -1670,7 +1674,7 @@ class Release
|
|
1670
1674
|
},
|
1671
1675
|
{
|
1672
1676
|
parameter_key: "ReleaseVersion",
|
1673
|
-
parameter_value: "#{@projects["hutch"]['revision']}
|
1677
|
+
parameter_value: "#{@projects["hutch"]['revision']}"
|
1674
1678
|
},
|
1675
1679
|
{
|
1676
1680
|
parameter_key: "ALBShortName",
|
@@ -1841,13 +1845,33 @@ class Release
|
|
1841
1845
|
|
1842
1846
|
if @projects['prima']['name'] != 'master' then
|
1843
1847
|
output "Lancio il batch job per la visual regression..."
|
1844
|
-
|
1845
|
-
|
1848
|
+
@batch.submit_job({
|
1849
|
+
job_name: "bocelli-test-#{@dns_record_identifier}",
|
1850
|
+
job_queue: "tools-production",
|
1851
|
+
job_definition: describe_stack_resource('batch-job-bocelli-production', 'JobDefinition').stack_resource_detail.physical_resource_id,
|
1852
|
+
container_overrides: {
|
1853
|
+
environment: [
|
1854
|
+
{
|
1855
|
+
name: "BATCH_COMMAND",
|
1856
|
+
value: "test"
|
1857
|
+
},
|
1858
|
+
{
|
1859
|
+
name: "QA_HOSTNAME",
|
1860
|
+
value: prima_hostname
|
1861
|
+
},
|
1862
|
+
{
|
1863
|
+
name: "BRANCH_NAME",
|
1864
|
+
value: @projects['prima']['name']
|
1865
|
+
},
|
1866
|
+
{
|
1867
|
+
name: "COMMITTER_EMAIL",
|
1868
|
+
value: @projects['prima']['committer']
|
1869
|
+
}
|
1870
|
+
]
|
1871
|
+
}
|
1872
|
+
})
|
1846
1873
|
|
1847
|
-
output "
|
1848
|
-
launch_lighthouse_test(prima_hostname, "mobile")
|
1849
|
-
launch_lighthouse_test(prima_hostname, "desktop")
|
1850
|
-
output "Test con Lighthouse lanciati con successo..."
|
1874
|
+
output "Visual regression lanciata con successo!"
|
1851
1875
|
end
|
1852
1876
|
|
1853
1877
|
qainit_write_output(projects_text, 'Indirizzi scritti su ')
|
@@ -2004,69 +2028,6 @@ class Release
|
|
2004
2028
|
update_ecs_service(@ecs_cluster_name, resp.stack_resource_detail.physical_resource_id, {minimum_healthy_percent: 0, maximum_percent: 100})
|
2005
2029
|
end
|
2006
2030
|
|
2007
|
-
def launch_lighthouse_test(url, device)
|
2008
|
-
@cloudflare.post("zones/1fb634f19c43dfb0162cc4cb91915da2/dns_records", {type: 'CNAME', name: "www-#{@dns_record_identifier}", content: url, proxied: true, ttl: 1}) unless get_lighthouse_dns()
|
2009
|
-
|
2010
|
-
@batch.submit_job({
|
2011
|
-
job_name: "lighthouse-#{device}-#{@dns_record_identifier}",
|
2012
|
-
job_queue: "tools-production",
|
2013
|
-
job_definition: describe_stack_resource('batch-job-lighthouse-production', 'JobDefinition').stack_resource_detail.physical_resource_id,
|
2014
|
-
container_overrides: {
|
2015
|
-
environment: [
|
2016
|
-
{
|
2017
|
-
name: "URL_TO_TEST",
|
2018
|
-
value: "https://www-#{@dns_record_identifier}.prima.it/?superprima"
|
2019
|
-
},
|
2020
|
-
{
|
2021
|
-
name: "DEVICE",
|
2022
|
-
value: device
|
2023
|
-
}
|
2024
|
-
]
|
2025
|
-
}
|
2026
|
-
})
|
2027
|
-
end
|
2028
|
-
|
2029
|
-
def get_lighthouse_dns()
|
2030
|
-
dns_records = @cloudflare.get("zones/1fb634f19c43dfb0162cc4cb91915da2/dns_records", {per_page: 100, type: 'CNAME', name: "www-#{@dns_record_identifier}.prima.it"})
|
2031
|
-
if dns_records.body[:result_info][:count] > 0
|
2032
|
-
return dns_records.body[:result][0][:id]
|
2033
|
-
end
|
2034
|
-
false
|
2035
|
-
end
|
2036
|
-
|
2037
|
-
def delete_lighthouse_dns()
|
2038
|
-
dns_id = get_lighthouse_dns()
|
2039
|
-
@cloudflare.delete("zones/1fb634f19c43dfb0162cc4cb91915da2/dns_records/#{dns_id}") if dns_id
|
2040
|
-
end
|
2041
|
-
|
2042
|
-
def launch_bocelli_test(url)
|
2043
|
-
@batch.submit_job({
|
2044
|
-
job_name: "bocelli-test-#{@dns_record_identifier}",
|
2045
|
-
job_queue: "tools-production",
|
2046
|
-
job_definition: describe_stack_resource('batch-job-bocelli-production', 'JobDefinition').stack_resource_detail.physical_resource_id,
|
2047
|
-
container_overrides: {
|
2048
|
-
environment: [
|
2049
|
-
{
|
2050
|
-
name: "BATCH_COMMAND",
|
2051
|
-
value: "test"
|
2052
|
-
},
|
2053
|
-
{
|
2054
|
-
name: "QA_HOSTNAME",
|
2055
|
-
value: url
|
2056
|
-
},
|
2057
|
-
{
|
2058
|
-
name: "BRANCH_NAME",
|
2059
|
-
value: @projects['prima']['name']
|
2060
|
-
},
|
2061
|
-
{
|
2062
|
-
name: "COMMITTER_EMAIL",
|
2063
|
-
value: @projects['prima']['committer']
|
2064
|
-
}
|
2065
|
-
]
|
2066
|
-
}
|
2067
|
-
})
|
2068
|
-
end
|
2069
|
-
|
2070
2031
|
def create_activia_artifact(revision)
|
2071
2032
|
output "Preparo l'artifact activia .zip\n".yellow
|
2072
2033
|
|
data/bin/twig-update-ami
CHANGED
data/lib/prima_aws_client.rb
CHANGED
@@ -1,11 +1,4 @@
|
|
1
|
-
require 'aws-sdk
|
2
|
-
require 'aws-sdk-batch'
|
3
|
-
require 'aws-sdk-cloudformation'
|
4
|
-
require 'aws-sdk-cloudfront'
|
5
|
-
require 'aws-sdk-ec2'
|
6
|
-
require 'aws-sdk-ecs'
|
7
|
-
require 'aws-sdk-elasticloadbalancingv2'
|
8
|
-
require 'aws-sdk-s3'
|
1
|
+
require 'aws-sdk'
|
9
2
|
require 'colorize'
|
10
3
|
#
|
11
4
|
module PrimaAwsClient
|
data/lib/prima_twig.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prima-twig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.61.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matteo Giachino
|
@@ -14,122 +14,10 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2020-02-
|
17
|
+
date: 2020-02-04 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
|
-
name: aws-sdk
|
21
|
-
requirement: !ruby/object:Gem::Requirement
|
22
|
-
requirements:
|
23
|
-
- - "~>"
|
24
|
-
- !ruby/object:Gem::Version
|
25
|
-
version: '1'
|
26
|
-
type: :runtime
|
27
|
-
prerelease: false
|
28
|
-
version_requirements: !ruby/object:Gem::Requirement
|
29
|
-
requirements:
|
30
|
-
- - "~>"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '1'
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: aws-sdk-batch
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '1'
|
40
|
-
type: :runtime
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - "~>"
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '1'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: aws-sdk-cloudformation
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '1'
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '1'
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: aws-sdk-cloudfront
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - "~>"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: '1'
|
68
|
-
type: :runtime
|
69
|
-
prerelease: false
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
71
|
-
requirements:
|
72
|
-
- - "~>"
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: '1'
|
75
|
-
- !ruby/object:Gem::Dependency
|
76
|
-
name: aws-sdk-ec2
|
77
|
-
requirement: !ruby/object:Gem::Requirement
|
78
|
-
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '1'
|
82
|
-
type: :runtime
|
83
|
-
prerelease: false
|
84
|
-
version_requirements: !ruby/object:Gem::Requirement
|
85
|
-
requirements:
|
86
|
-
- - "~>"
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: '1'
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: aws-sdk-ecs
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - "~>"
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '1'
|
96
|
-
type: :runtime
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - "~>"
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '1'
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: aws-sdk-elasticloadbalancingv2
|
105
|
-
requirement: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - "~>"
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '1'
|
110
|
-
type: :runtime
|
111
|
-
prerelease: false
|
112
|
-
version_requirements: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - "~>"
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '1'
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: aws-sdk-s3
|
119
|
-
requirement: !ruby/object:Gem::Requirement
|
120
|
-
requirements:
|
121
|
-
- - "~>"
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: '1'
|
124
|
-
type: :runtime
|
125
|
-
prerelease: false
|
126
|
-
version_requirements: !ruby/object:Gem::Requirement
|
127
|
-
requirements:
|
128
|
-
- - "~>"
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: '1'
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
|
-
name: aws-sdk-core
|
20
|
+
name: aws-sdk
|
133
21
|
requirement: !ruby/object:Gem::Requirement
|
134
22
|
requirements:
|
135
23
|
- - "~>"
|