prima-twig 0.35.0 → 0.36.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/twig-feature +80 -4
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 843837d907be87ecc4ef38e0415c589e037a0fc2
4
- data.tar.gz: 5aae6c8a0a983e85c22cc379becb68bf20aff41c
3
+ metadata.gz: ff7487628271433b14f1e490c6df78e3d4e7908c
4
+ data.tar.gz: 8fb80cb0f4c8f593c0335dc84d2f24fa4a1e122b
5
5
  SHA512:
6
- metadata.gz: 1faa1c7079dabca4bc423a6a1fca628b642f9f9ec35cbb624064ed186b90a97629c18620ab590542bbd8da8e134b274c40effb5b633eab92bfb01bcaf4e6e84a
7
- data.tar.gz: ccd537c66283bb29704bd577a48961261d1a475198f8cc731aa6ca7288cfa669a3f854d76c5d42399d7ce66f71d530a2f98024eb4efd3f4d46a0e6ee198bafe0
6
+ metadata.gz: 61957a5f710a1c6fca415c7d19fdd0881af732fe68e914f0aa71644b6d836d01c4d44bda63b17fea7ab1bbe0c3c22661a3b4ab9602efdafb6022a286b3413b8a
7
+ data.tar.gz: 47b16a8c48cfc1bb86005932299244364c0804dada3250c51cc62301d0ef466c6bf50d8c0db6c97c55e2dd9e50085f269c21ed1eaa9289a2454660680958b9b4
data/bin/twig-feature CHANGED
@@ -23,6 +23,7 @@ class Release
23
23
  @ecs = Aws::ECS::Client.new
24
24
  @batch = Aws::Batch::Client.new
25
25
  @asg = Aws::AutoScaling::Client.new
26
+ @s3 = Aws::S3::Client.new
26
27
  @s3_bucket = 'prima-artifacts'
27
28
  @artifact_path = '/tmp/prima-artifact.zip'
28
29
  @import_db_task = 'arn:aws:ecs:eu-west-1:001575623345:task-definition/ecs-task-db-restore2-TaskDefinitionDbRestore-UDIDEVPA4H7Q:1'
@@ -55,6 +56,22 @@ class Release
55
56
  start_feature!
56
57
  when 'finish'
57
58
  finish_feature!
59
+ when 'qainit'
60
+ abort('Non sei nella cartella di qainit') unless Dir.pwd.match 'qainit$'
61
+ if ['terminate', 'stop', 'shutdown', 'halt', 'destroy'].include? args[1]
62
+ qainit_deploy_update! 'update'
63
+ elsif 'update' == args[1]
64
+ qainit_deploy_update! 'shutdown'
65
+ elsif 'read' == args[1]
66
+ qainit_read_config! args[2]
67
+ else
68
+ if args[1]
69
+ select_branches(args[1])
70
+ else
71
+ select_branches
72
+ end
73
+ qainit_deploy!
74
+ end
58
75
  when 'deploy'
59
76
  abort('Non sei nella cartella di artemide') unless Dir.pwd.match 'artemide$'
60
77
  if ['terminate', 'stop', 'shutdown', 'halt', 'destroy'].include? args[1]
@@ -394,6 +411,69 @@ class Release
394
411
  output "Finito!".green
395
412
  end
396
413
 
414
+ def qainit_deploy!
415
+ output 'Inserisci la feature a cui si riferisce il QA: '
416
+ feature_number = String(STDIN.gets)
417
+
418
+ `git checkout master && git checkout -b #{feature_number}`
419
+
420
+ branches = ''
421
+
422
+ @projects.each_key do |project_key|
423
+ if @projects[project_key][:revision]
424
+ branches += "#{project_key}:#{@projects[project_key][:name]}:#{@projects[project_key][:revision]}:#{@projects[project_key][:default_branch]}\n"
425
+ end
426
+ end
427
+
428
+ File.open('branch_names', 'w') { |file| file.write(branches) }
429
+
430
+ `git add branch_names && \
431
+ git commit -m '#{feature_number}' && \
432
+ git push --set-upstream origin #{feature_number}`
433
+ end
434
+
435
+ def qainit_deploy_update!(action)
436
+ # leggiamo i nomi dei branch
437
+ `git branch -a | grep remotes/ | grep -v HEAD | sed 's/ remotes\\/origin\\///g'`
438
+ # stampiamo la lista
439
+ chosen_branch = choose do |menu|
440
+ case action
441
+ when "update"
442
+ menu.prompt = "Scegli il QA che vuoi aggiornare: ".cyan
443
+ when "shutdown"
444
+ menu.prompt = "Scegli il QA che vuoi spegnere: ".cyan
445
+ end
446
+ menu.shell = true
447
+ branches.each do |branch|
448
+ msg = branch.light_blue
449
+ menu.choice(msg) { branch }
450
+ end
451
+ end
452
+ # checkout master, checkout branch, pull branch, push sul branch con commit vuoto
453
+ `git checkout master && git checkout #{chosen_branch} && git pull && git commit -m '#{action}' --allow-empty`
454
+ end
455
+
456
+ def qainit_read_config!
457
+ File.open('branch_names', 'r') do |file|
458
+ file.each_line do |line|
459
+ project = line.split(':')
460
+ @projects[project[0]] = {:name=> project[1], :revision=> project[2], :default_branch=> project[3]}
461
+ end
462
+ end
463
+ get_s3_config_files
464
+ deploy_feature!
465
+ end
466
+
467
+ def get_s3_config_files
468
+ # manteniamo la struttura per lanciarlo facilmente anche da locale
469
+ `mkdir -p cloudformation/stacks/task cloudformation/stacks/route53 cloudformation/stacks/asg cloudformation/stacks/alb`
470
+ @s3.get_object({bucket: 'prima-deploy', key: 'cloudformation/stacks/task/db.yml', response_target: 'cloudformation/stacks/task/db.yml'})
471
+ @s3.get_object({bucket: 'prima-deploy', key: 'cloudformation/stacks/route53/qa.yml', response_target: 'cloudformation/stacks/route53/qa.yml'})
472
+ @s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/asg/ecs-asg-allinone.yml', response_target: 'cloudformation/stacks/asg/ecs-asg-allinone.yml'})
473
+ @s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/ecs-cluster.yml', response_target: 'cloudformation/stacks/ecs-cluster.yml'})
474
+ @s3.get_object({bucket: "prima-deploy", key: 'cloudformation/stacks/alb/ecs-alb-public.yml', response_target: 'cloudformation/stacks/alb/ecs-alb-public.yml'})
475
+ end
476
+
397
477
  def deploy_feature!
398
478
  `git pull && git submodule init && git submodule update`
399
479
  if deploy_crash?
@@ -1987,18 +2067,14 @@ class Release
1987
2067
  },
1988
2068
  count: 1
1989
2069
  })
1990
- pp resp
1991
2070
  output "Attendo che i DB vengano importati...\n".yellow
1992
2071
  stopped_at = nil
1993
2072
  while stopped_at.nil?
1994
- pp "stopped_at == nil"
1995
2073
  unless resp.tasks[0].nil?
1996
- pp "describe tasks..."
1997
2074
  resp = @ecs.describe_tasks({
1998
2075
  cluster: @ecs_cluster_name,
1999
2076
  tasks: [resp.tasks[0].task_arn]
2000
2077
  })
2001
- pp resp
2002
2078
  end
2003
2079
  stopped_at = resp.tasks[0].stopped_at unless resp.tasks[0].nil?
2004
2080
  sleep_seconds = 10
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.35.0
4
+ version: 0.36.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matteo Giachino
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2018-05-17 00:00:00.000000000 Z
16
+ date: 2018-05-22 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: aws-sdk
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  version: '0'
215
215
  requirements: []
216
216
  rubyforge_project:
217
- rubygems_version: 2.6.14
217
+ rubygems_version: 2.6.11
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: The Prima twig toolbelt