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.
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