prima-twig 0.7.2 → 0.8.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 +16 -5
- data/bin/twig-feature +43 -4
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c68058d4453c6c9021a7adfbd8184bc838065d74
|
4
|
+
data.tar.gz: d66653ddd6d0dc3a7f8a368800ce31751e83147a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ff2d4c19fc2cac769d96b846962e0ea2a72da680beac4009ed2e17a77b441441289d549964be5c1ecc0d00d3e510ced4491c3b96c2618fd2e7c4409b077bdd8
|
7
|
+
data.tar.gz: 8dc16ca874d3768d829beca895813dd90171bf473e6a037f8064d0883cc3a2061f7996c4b4070a6b567dfe623a29f4182f28eb7e4cfd72e1d7a5f799b7152654
|
data/bin/twig-deploy
CHANGED
@@ -97,13 +97,15 @@ class Review
|
|
97
97
|
subject "#{user} ha effettuato il deploy della revision #{artifact[:rev]}"
|
98
98
|
end
|
99
99
|
|
100
|
+
commit_msg = clean_commit_message(artifact[:commit_msg])
|
101
|
+
|
100
102
|
body = "## Deploy in produzione effettuato con successo\n\n"
|
101
103
|
body << "Data: #{Time.now.strftime('%d/%m/%Y %H:%M:%S')}\n\n"
|
102
104
|
body << "Utente: #{user}\n\n"
|
103
105
|
body << "Revision: [#{artifact[:rev]}](https://github.com/primait/prima/commit/#{artifact[:rev]}) del #{artifact[:created_at].strftime('%d/%m/%Y %H:%M:%S')}\n\n"
|
104
106
|
body << "Branch: [#{artifact[:branch]}](https://github.com/primait/prima/tree/#{artifact[:branch]})\n\n"
|
105
|
-
body << "Commit: #{
|
106
|
-
body << "Screenshots (tra qualche minuto): [BrowserStack](https://www.browserstack.com/automate) (Filtrare per: \"#{
|
107
|
+
body << "Commit: #{commit_msg.gsub(/_/, '\_')}\n\n"
|
108
|
+
body << "Screenshots (tra qualche minuto): [BrowserStack](https://www.browserstack.com/automate) (Filtrare per: \"#{get_paparatzinger_job_name(commit_msg).gsub(/_/, '\_')}\")"
|
107
109
|
|
108
110
|
htmlBody = Redcarpet::Markdown.new(Redcarpet::Render::HTML.new).render body
|
109
111
|
|
@@ -214,9 +216,7 @@ class Review
|
|
214
216
|
|
215
217
|
paparatzinger_config = YAML.load_file '/tmp/paparatzinger_twig.yml'
|
216
218
|
|
217
|
-
job_name
|
218
|
-
job_name.gsub! /from primait\/feature\//i, ''
|
219
|
-
job_name[0..99].gsub! /[^0-9a-z]/i, '\_'
|
219
|
+
job_name = get_paparatzinger_job_name(clean_commit_message(job_name))
|
220
220
|
|
221
221
|
logical_resource_id = 'TaskDefinitionPaparatzinger'
|
222
222
|
resp = @cf.describe_stack_resource({
|
@@ -257,4 +257,15 @@ class Review
|
|
257
257
|
|
258
258
|
end
|
259
259
|
|
260
|
+
def clean_commit_message(commit_msg)
|
261
|
+
commit_msg.gsub! /Merge pull request /i, ''
|
262
|
+
commit_msg.gsub! /from primait\/feature\//i, ''
|
263
|
+
commit_msg = commit_msg[/.+?\(#\d+\)/m] unless commit_msg[/.+?\(#\d+\)/m].nil? # rimuove tutto quello che sta dopo la fine del numero di issue
|
264
|
+
commit_msg[0..99]
|
265
|
+
end
|
266
|
+
|
267
|
+
def get_paparatzinger_job_name(job_name)
|
268
|
+
job_name.gsub /[^0-9a-z]/i, '-'
|
269
|
+
end
|
270
|
+
|
260
271
|
Review.new.execute! args
|
data/bin/twig-feature
CHANGED
@@ -13,6 +13,7 @@ class Release
|
|
13
13
|
@prima = Prima.new
|
14
14
|
@cf = Aws::CloudFormation::Client.new
|
15
15
|
@elb = Aws::ElasticLoadBalancing::Client.new
|
16
|
+
@alb = Aws::ElasticLoadBalancingV2::Client.new
|
16
17
|
@ec2 = Aws::EC2::Client.new
|
17
18
|
@ecs = Aws::ECS::Client.new
|
18
19
|
@s3 = Aws::S3::Client.new
|
@@ -210,6 +211,10 @@ class Release
|
|
210
211
|
{
|
211
212
|
parameter_key: "ECSClusterName",
|
212
213
|
parameter_value: @ecs_cluster_name
|
214
|
+
},
|
215
|
+
{
|
216
|
+
parameter_key: "ALBShortName",
|
217
|
+
parameter_value: "ecs-task-web-qa-#{deploy_id}"[0..31]
|
213
218
|
}
|
214
219
|
]
|
215
220
|
if stack_exists?(stack_name_web)
|
@@ -260,6 +265,10 @@ class Release
|
|
260
265
|
{
|
261
266
|
parameter_key: "ECSClusterName",
|
262
267
|
parameter_value: @ecs_cluster_name
|
268
|
+
},
|
269
|
+
{
|
270
|
+
parameter_key: "ALBShortName",
|
271
|
+
parameter_value: "ecs-task-urania-qa-#{deploy_id}"[0..31]
|
263
272
|
}
|
264
273
|
]
|
265
274
|
if stack_exists?(stack_name_urania)
|
@@ -310,6 +319,10 @@ class Release
|
|
310
319
|
{
|
311
320
|
parameter_key: "TaskDesiredCount",
|
312
321
|
parameter_value: "1"
|
322
|
+
},
|
323
|
+
{
|
324
|
+
parameter_key: "ALBShortName",
|
325
|
+
parameter_value: "ecs-task-bburago-qa-#{deploy_id}"[0..31]
|
313
326
|
}
|
314
327
|
]
|
315
328
|
if stack_exists?(stack_name_bburago)
|
@@ -337,6 +350,10 @@ class Release
|
|
337
350
|
{
|
338
351
|
parameter_key: "ECSClusterName",
|
339
352
|
parameter_value: @ecs_cluster_name
|
353
|
+
},
|
354
|
+
{
|
355
|
+
parameter_key: "ALBShortName",
|
356
|
+
parameter_value: "ecs-task-backoffice-qa-#{deploy_id}"[0..31]
|
340
357
|
}
|
341
358
|
]
|
342
359
|
if stack_exists?(stack_name_backoffice)
|
@@ -368,19 +385,19 @@ class Release
|
|
368
385
|
},
|
369
386
|
{
|
370
387
|
parameter_key: "PrimaElbHostname",
|
371
|
-
parameter_value:
|
388
|
+
parameter_value: get_alb_host(stack_name_web)
|
372
389
|
},
|
373
390
|
{
|
374
391
|
parameter_key: "BackofficeElbHostname",
|
375
|
-
parameter_value:
|
392
|
+
parameter_value: get_alb_host(stack_name_backoffice)
|
376
393
|
},
|
377
394
|
{
|
378
395
|
parameter_key: "UraniaElbHostname",
|
379
|
-
parameter_value:
|
396
|
+
parameter_value: get_alb_host(stack_name_urania)
|
380
397
|
},
|
381
398
|
{
|
382
399
|
parameter_key: "BburagoElbHostname",
|
383
|
-
parameter_value:
|
400
|
+
parameter_value: get_alb_host(stack_name_bburago)
|
384
401
|
}
|
385
402
|
]
|
386
403
|
create_stack(stack_name_route53, stack_body, parameters, tags) unless stack_exists?(stack_name_route53)
|
@@ -428,6 +445,28 @@ class Release
|
|
428
445
|
resp.reservations[0].instances[0].private_ip_address
|
429
446
|
end
|
430
447
|
|
448
|
+
def get_alb_host(stack_name)
|
449
|
+
case
|
450
|
+
when stack_name.include?('web')
|
451
|
+
logical_resource_id = 'EcsApplicationLoadBalancerPublic'
|
452
|
+
when stack_name.include?('urania')
|
453
|
+
logical_resource_id = 'EcsApplicationLoadBalancerInternal'
|
454
|
+
when stack_name.include?('backoffice')
|
455
|
+
logical_resource_id = 'EcsApplicationLoadBalancerPublic'
|
456
|
+
when stack_name.include?('bburago')
|
457
|
+
logical_resource_id = 'EcsApplicationLoadBalancerInternal'
|
458
|
+
end
|
459
|
+
resp = @cf.describe_stack_resource({
|
460
|
+
stack_name: stack_name,
|
461
|
+
logical_resource_id: logical_resource_id
|
462
|
+
})
|
463
|
+
pp resp.stack_resource_detail.physical_resource_id
|
464
|
+
resp = @alb.describe_load_balancers({
|
465
|
+
load_balancer_arns: [resp.stack_resource_detail.physical_resource_id]
|
466
|
+
})
|
467
|
+
resp.load_balancers[0].dns_name
|
468
|
+
end
|
469
|
+
|
431
470
|
def get_elb_host(stack_name)
|
432
471
|
case
|
433
472
|
when stack_name.include?('web')
|
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.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matteo Giachino
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-09-06 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: twig
|
@@ -142,23 +142,23 @@ dependencies:
|
|
142
142
|
description: Our tools to manage git and github
|
143
143
|
email: matteo.giachino@prima.it
|
144
144
|
executables:
|
145
|
-
- twig-open-pr
|
146
|
-
- twig-review
|
147
145
|
- twig-circle
|
148
|
-
- twig-pick-issue
|
149
|
-
- twig-hotfix
|
150
146
|
- twig-deploy
|
151
147
|
- twig-feature
|
148
|
+
- twig-hotfix
|
149
|
+
- twig-open-pr
|
150
|
+
- twig-pick-issue
|
151
|
+
- twig-review
|
152
152
|
extensions: []
|
153
153
|
extra_rdoc_files: []
|
154
154
|
files:
|
155
|
-
- bin/twig-open-pr
|
156
|
-
- bin/twig-review
|
157
155
|
- bin/twig-circle
|
158
|
-
- bin/twig-pick-issue
|
159
|
-
- bin/twig-hotfix
|
160
156
|
- bin/twig-deploy
|
161
157
|
- bin/twig-feature
|
158
|
+
- bin/twig-hotfix
|
159
|
+
- bin/twig-open-pr
|
160
|
+
- bin/twig-pick-issue
|
161
|
+
- bin/twig-review
|
162
162
|
- lib/command.rb
|
163
163
|
- lib/prima_twig.rb
|
164
164
|
homepage: http://rubygems.org/gems/prima-twig
|
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
181
|
version: '0'
|
182
182
|
requirements: []
|
183
183
|
rubyforge_project:
|
184
|
-
rubygems_version: 2.
|
184
|
+
rubygems_version: 2.5.1
|
185
185
|
signing_key:
|
186
186
|
specification_version: 4
|
187
187
|
summary: The Prima twig toolbelt
|