prima-twig 0.7.2 → 0.8.0

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/twig-deploy +16 -5
  3. data/bin/twig-feature +43 -4
  4. metadata +11 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 08bee3be656bc5562907e50f9df2025d23f47e62
4
- data.tar.gz: 236c18f9dde5fbe4ba0915fda17686a77c5a7e95
3
+ metadata.gz: c68058d4453c6c9021a7adfbd8184bc838065d74
4
+ data.tar.gz: d66653ddd6d0dc3a7f8a368800ce31751e83147a
5
5
  SHA512:
6
- metadata.gz: a1c7e589c07f434634afda5d999d5f5481918eace3066a86929f015e8a574c38b1454a3d0ed8b0ba57106173dbe10b8ebf24edc99b2e20bccdd2d9d734028c77
7
- data.tar.gz: dd3984473d62a8cc1951af183cedc6261df9ca5959bf7d3e246c40a1cc1cbc81c44ae729b1bbb5c886ebf7524e7ca16e17047c5c59ec4821506ecf8c6715f95e
6
+ metadata.gz: 3ff2d4c19fc2cac769d96b846962e0ea2a72da680beac4009ed2e17a77b441441289d549964be5c1ecc0d00d3e510ced4491c3b96c2618fd2e7c4409b077bdd8
7
+ data.tar.gz: 8dc16ca874d3768d829beca895813dd90171bf473e6a037f8064d0883cc3a2061f7996c4b4070a6b567dfe623a29f4182f28eb7e4cfd72e1d7a5f799b7152654
@@ -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: #{artifact[:commit_msg].gsub(/_/, '\_')}\n\n"
106
- body << "Screenshots (tra qualche minuto): [BrowserStack](https://www.browserstack.com/automate) (Filtrare per: \"#{job_name.gsub(/_/, '\_')}\")"
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.gsub! /Merge pull request /i, ''
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
@@ -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: get_elb_host(stack_name_web)
388
+ parameter_value: get_alb_host(stack_name_web)
372
389
  },
373
390
  {
374
391
  parameter_key: "BackofficeElbHostname",
375
- parameter_value: get_elb_host(stack_name_backoffice)
392
+ parameter_value: get_alb_host(stack_name_backoffice)
376
393
  },
377
394
  {
378
395
  parameter_key: "UraniaElbHostname",
379
- parameter_value: get_elb_host(stack_name_urania)
396
+ parameter_value: get_alb_host(stack_name_urania)
380
397
  },
381
398
  {
382
399
  parameter_key: "BburagoElbHostname",
383
- parameter_value: get_elb_host(stack_name_bburago)
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.7.2
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-08-08 00:00:00.000000000 Z
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.0.14.1
184
+ rubygems_version: 2.5.1
185
185
  signing_key:
186
186
  specification_version: 4
187
187
  summary: The Prima twig toolbelt