prima-twig 0.17.2 → 0.18.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-feature +80 -53
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25e1f11eeb5f30f39a7f11e027c7392878720ba2
|
4
|
+
data.tar.gz: 081c6b077ec7ade4d35910fcb0cdb64155a7dc76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44ba6cf9a6f4a6aa59d52f61c04672ca8b617a306e698bc6f999460cd798faac7deeeea5614e7fdbc957fa31669eb306cd8a392830f1103cbc7f656bbcbf501c
|
7
|
+
data.tar.gz: cd76ff598b2b6e3b9fa4b54158c4651acbaaae529c2141e3d5529d02f4906a36ca2cc7863df50be7af6179abdf414d3c68f062978ae1a709e262da2d34b4d03e
|
data/bin/twig-feature
CHANGED
@@ -32,6 +32,7 @@ class Release
|
|
32
32
|
@backoffice_built = false
|
33
33
|
@dns_record_identifier = nil
|
34
34
|
@ecs_cluster_name = nil
|
35
|
+
@projects = {"prima" => {}, "backoffice" => {}, "urania" => {}, "ermes" => {}, "bburago" => {}, "hal9000" => {}, "fidaty" => {}}
|
35
36
|
end
|
36
37
|
|
37
38
|
def execute! args
|
@@ -44,7 +45,11 @@ class Release
|
|
44
45
|
if ['terminate', 'stop', 'shutdown', 'halt', 'destroy'].include? args[1]
|
45
46
|
deploy_shutdown!
|
46
47
|
else
|
47
|
-
|
48
|
+
if args[1]
|
49
|
+
deploy_feature! args[1]
|
50
|
+
else
|
51
|
+
deploy_feature!
|
52
|
+
end
|
48
53
|
end
|
49
54
|
else
|
50
55
|
stop_if true, [:wrong_args, ['start', 'finish', 'deploy', 'deploy stop']]
|
@@ -130,51 +135,44 @@ class Release
|
|
130
135
|
output "Finito!".green
|
131
136
|
end
|
132
137
|
|
133
|
-
def deploy_feature!
|
138
|
+
def deploy_feature!(project_name = nil)
|
134
139
|
output "Deploy feature menu"
|
135
140
|
`sudo true` # cosi' non chiede la password dopo
|
136
141
|
`git pull && git submodule init && git submodule update`
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
bburago_branch = choose_branch_to_deploy('bburago')
|
142
|
-
hal9000_branch = choose_branch_to_deploy('hal9000')
|
143
|
-
fidaty_branch = choose_branch_to_deploy('fidaty')
|
144
|
-
socket_branch = {name: "master"}
|
145
|
-
pamela_branch = {name: "master"}
|
146
|
-
|
147
|
-
deploy_id = Digest::MD5.hexdigest(prima_branch[:name] + backoffice_branch[:name] + urania_branch[:name] + socket_branch[:name] + pamela_branch[:name] + ermes_branch[:name] + bburago_branch[:name] + hal9000_branch[:name] + fidaty_branch[:name])
|
142
|
+
|
143
|
+
select_branches(project_name)
|
144
|
+
|
145
|
+
deploy_id = Digest::MD5.hexdigest(@projects["prima"][:name] + @projects["backoffice"][:name] + @projects["urania"][:name] + @projects["ermes"][:name] + @projects["bburago"][:name] + @projects["hal9000"][:name] + @projects["fidaty"][:name])
|
148
146
|
@dns_record_identifier = deploy_id
|
149
147
|
|
150
148
|
tags = [
|
151
149
|
{
|
152
150
|
key: "prima",
|
153
|
-
value:
|
151
|
+
value: @projects["prima"][:name]
|
154
152
|
},
|
155
153
|
{
|
156
154
|
key: "urania",
|
157
|
-
value:
|
155
|
+
value: @projects["urania"][:name]
|
158
156
|
},
|
159
157
|
{
|
160
158
|
key: "backoffice",
|
161
|
-
value:
|
159
|
+
value: @projects["backoffice"][:name]
|
162
160
|
},
|
163
161
|
{
|
164
162
|
key: "ermes",
|
165
|
-
value:
|
163
|
+
value: @projects["ermes"][:name]
|
166
164
|
},
|
167
165
|
{
|
168
166
|
key: "bburago",
|
169
|
-
value:
|
167
|
+
value: @projects["bburago"][:name]
|
170
168
|
},
|
171
169
|
{
|
172
170
|
key: "hal9000",
|
173
|
-
value:
|
171
|
+
value: @projects["hal9000"][:name]
|
174
172
|
},
|
175
173
|
{
|
176
174
|
key: "fidaty",
|
177
|
-
value:
|
175
|
+
value: @projects["fidaty"][:name]
|
178
176
|
}
|
179
177
|
]
|
180
178
|
|
@@ -202,19 +200,19 @@ class Release
|
|
202
200
|
]
|
203
201
|
create_stack(stack_name_db, stack_body, parameters, tags) unless stack_exists?(stack_name_db)
|
204
202
|
|
205
|
-
create_prima_artifact(
|
206
|
-
create_urania_artifact(
|
207
|
-
create_ermes_artifact(
|
208
|
-
create_bburago_artifact(
|
209
|
-
create_hal9000_artifact(
|
210
|
-
create_fidaty_artifact(
|
211
|
-
create_backoffice_artifact(
|
203
|
+
create_prima_artifact(@projects["prima"][:revision], @projects["prima"][:name], deploy_id) unless artifact_exists?('prima-artifacts', "prima/#{@projects["prima"][:revision]}-#{deploy_id}.tar.gz")
|
204
|
+
create_urania_artifact(@projects["urania"][:revision]) unless artifact_exists?('prima-artifacts', "microservices/urania/#{@projects["urania"][:revision]}-qa.tar.gz")
|
205
|
+
create_ermes_artifact(@projects["ermes"][:revision]) unless artifact_exists?('prima-artifacts', "microservices/ermes/#{@projects["ermes"][:revision]}-qa.tar.gz")
|
206
|
+
create_bburago_artifact(@projects["bburago"][:revision]) unless artifact_exists?('prima-artifacts', "microservices/bburago/#{@projects["bburago"][:revision]}-qa.tar.gz")
|
207
|
+
create_hal9000_artifact(@projects["hal9000"][:revision]) unless artifact_exists?('prima-artifacts', "microservices/hal9000/#{@projects["hal9000"][:revision]}-qa.tar.gz")
|
208
|
+
create_fidaty_artifact(@projects["fidaty"][:revision], deploy_id) unless artifact_exists?('prima-artifacts', "microservices/fidaty/#{@projects["fidaty"][:revision]}-#{deploy_id}-qa.tar.gz")
|
209
|
+
create_backoffice_artifact(@projects["backoffice"][:revision], deploy_id) unless artifact_exists?('prima-artifacts', "backoffice/#{@projects["backoffice"][:revision]}-#{deploy_id}.zip")
|
212
210
|
|
213
211
|
wait_for_stack_ready(stack_name_db) unless stack_ready?(stack_name_db)
|
214
212
|
import_dbs(ec2_ip_address(asg_stack_name)) unless stack_exists?("ecs-task-web-qa-#{deploy_id}")
|
215
213
|
|
216
214
|
stack_name_web = "ecs-task-web-qa-#{deploy_id}"
|
217
|
-
git_checkout_version('prima',
|
215
|
+
git_checkout_version('prima', @projects["prima"][:revision])
|
218
216
|
stack_body = IO.read('projects/prima/app/cloudformation/tasks/web.yml')
|
219
217
|
parameters = [
|
220
218
|
{
|
@@ -223,7 +221,7 @@ class Release
|
|
223
221
|
},
|
224
222
|
{
|
225
223
|
parameter_key: "ReleaseVersion",
|
226
|
-
parameter_value: "#{
|
224
|
+
parameter_value: "#{@projects["prima"][:revision]}-#{deploy_id}"
|
227
225
|
},
|
228
226
|
{
|
229
227
|
parameter_key: "TaskDesiredCount",
|
@@ -249,7 +247,7 @@ class Release
|
|
249
247
|
end
|
250
248
|
|
251
249
|
stack_name_consumer = "ecs-task-consumer-qa-#{deploy_id}"
|
252
|
-
git_checkout_version('prima',
|
250
|
+
git_checkout_version('prima', @projects["prima"][:revision])
|
253
251
|
stack_body = IO.read('projects/prima/app/cloudformation/tasks/consumer.yml')
|
254
252
|
parameters = [
|
255
253
|
{
|
@@ -258,7 +256,7 @@ class Release
|
|
258
256
|
},
|
259
257
|
{
|
260
258
|
parameter_key: "ReleaseVersion",
|
261
|
-
parameter_value: "#{
|
259
|
+
parameter_value: "#{@projects["prima"][:revision]}-#{deploy_id}"
|
262
260
|
},
|
263
261
|
{
|
264
262
|
parameter_key: "ECSClusterName",
|
@@ -272,7 +270,7 @@ class Release
|
|
272
270
|
end
|
273
271
|
|
274
272
|
stack_name_urania = "ecs-task-urania-qa-#{deploy_id}"
|
275
|
-
git_checkout_version('urania',
|
273
|
+
git_checkout_version('urania', @projects["urania"][:revision])
|
276
274
|
stack_body = IO.read('projects/urania/deploy/task.yml')
|
277
275
|
parameters = [
|
278
276
|
{
|
@@ -281,7 +279,7 @@ class Release
|
|
281
279
|
},
|
282
280
|
{
|
283
281
|
parameter_key: "ReleaseVersion",
|
284
|
-
parameter_value:
|
282
|
+
parameter_value: @projects["urania"][:revision]
|
285
283
|
},
|
286
284
|
{
|
287
285
|
parameter_key: "TaskDesiredCount",
|
@@ -303,7 +301,7 @@ class Release
|
|
303
301
|
end
|
304
302
|
|
305
303
|
stack_name_ermes = "ecs-task-ermes-qa-#{deploy_id}"
|
306
|
-
git_checkout_version('ermes',
|
304
|
+
git_checkout_version('ermes', @projects["ermes"][:revision])
|
307
305
|
stack_body = IO.read('projects/ermes/deploy/task.yml')
|
308
306
|
parameters = [
|
309
307
|
{
|
@@ -312,7 +310,7 @@ class Release
|
|
312
310
|
},
|
313
311
|
{
|
314
312
|
parameter_key: "ReleaseVersion",
|
315
|
-
parameter_value:
|
313
|
+
parameter_value: @projects["ermes"][:revision]
|
316
314
|
},
|
317
315
|
{
|
318
316
|
parameter_key: "ECSClusterName",
|
@@ -326,7 +324,7 @@ class Release
|
|
326
324
|
end
|
327
325
|
|
328
326
|
stack_name_bburago = "ecs-task-bburago-qa-#{deploy_id}"
|
329
|
-
git_checkout_version('bburago',
|
327
|
+
git_checkout_version('bburago', @projects["bburago"][:revision])
|
330
328
|
stack_body = IO.read('projects/bburago/deploy/task.yml')
|
331
329
|
parameters = [
|
332
330
|
{
|
@@ -335,7 +333,7 @@ class Release
|
|
335
333
|
},
|
336
334
|
{
|
337
335
|
parameter_key: "ReleaseVersion",
|
338
|
-
parameter_value:
|
336
|
+
parameter_value: @projects["bburago"][:revision]
|
339
337
|
},
|
340
338
|
{
|
341
339
|
parameter_key: "ECSClusterName",
|
@@ -357,7 +355,7 @@ class Release
|
|
357
355
|
end
|
358
356
|
|
359
357
|
stack_name_hal9000 = "ecs-task-hal9000-qa-#{deploy_id}"
|
360
|
-
git_checkout_version('hal9000',
|
358
|
+
git_checkout_version('hal9000', @projects["hal9000"][:revision])
|
361
359
|
stack_body = IO.read('projects/hal9000/deploy/task.yml')
|
362
360
|
parameters = [
|
363
361
|
{
|
@@ -366,7 +364,7 @@ class Release
|
|
366
364
|
},
|
367
365
|
{
|
368
366
|
parameter_key: "ReleaseVersion",
|
369
|
-
parameter_value:
|
367
|
+
parameter_value: @projects["hal9000"][:revision]
|
370
368
|
},
|
371
369
|
{
|
372
370
|
parameter_key: "ECSClusterName",
|
@@ -388,7 +386,7 @@ class Release
|
|
388
386
|
end
|
389
387
|
|
390
388
|
stack_name_fidaty = "ecs-task-fidaty-qa-#{deploy_id}"
|
391
|
-
git_checkout_version('fidaty',
|
389
|
+
git_checkout_version('fidaty', @projects["fidaty"][:revision])
|
392
390
|
stack_body = IO.read('projects/fidaty/deploy/task.yml')
|
393
391
|
parameters = [
|
394
392
|
{
|
@@ -397,7 +395,7 @@ class Release
|
|
397
395
|
},
|
398
396
|
{
|
399
397
|
parameter_key: "ReleaseVersion",
|
400
|
-
parameter_value:
|
398
|
+
parameter_value: @projects["fidaty"][:revision]
|
401
399
|
},
|
402
400
|
{
|
403
401
|
parameter_key: "ECSClusterName",
|
@@ -418,7 +416,7 @@ class Release
|
|
418
416
|
create_stack(stack_name_fidaty, stack_body, parameters, tags)
|
419
417
|
end
|
420
418
|
|
421
|
-
git_checkout_version('backoffice',
|
419
|
+
git_checkout_version('backoffice', @projects["backoffice"][:revision])
|
422
420
|
stack_name_backoffice = "ecs-task-backoffice-qa-#{deploy_id}"
|
423
421
|
stack_body = IO.read('projects/backoffice/deploy/task.yml')
|
424
422
|
parameters = [
|
@@ -428,7 +426,7 @@ class Release
|
|
428
426
|
},
|
429
427
|
{
|
430
428
|
parameter_key: "ReleaseVersion",
|
431
|
-
parameter_value: "#{
|
429
|
+
parameter_value: "#{@projects["backoffice"][:revision]}-#{deploy_id}"
|
432
430
|
},
|
433
431
|
{
|
434
432
|
parameter_key: "TaskDesiredCount",
|
@@ -778,7 +776,7 @@ class Release
|
|
778
776
|
Dir.chdir '../../'
|
779
777
|
end
|
780
778
|
|
781
|
-
def create_fidaty_artifact(revision)
|
779
|
+
def create_fidaty_artifact(revision, deploy_id)
|
782
780
|
@fidaty_built = true
|
783
781
|
output "Preparo l'artifact .zip\n".yellow
|
784
782
|
|
@@ -812,7 +810,7 @@ class Release
|
|
812
810
|
end
|
813
811
|
|
814
812
|
artifact_path = Dir.glob("_build/qa/rel/fidaty/releases/*/fidaty.tar.gz").first
|
815
|
-
upload_artifact(artifact_path, "microservices/fidaty/#{revision}-qa.tar.gz")
|
813
|
+
upload_artifact(artifact_path, "microservices/fidaty/#{revision}-#{deploy_id}-qa.tar.gz")
|
816
814
|
|
817
815
|
Dir.chdir '../../'
|
818
816
|
end
|
@@ -1072,22 +1070,33 @@ class Release
|
|
1072
1070
|
!resp.contents.empty?
|
1073
1071
|
end
|
1074
1072
|
|
1075
|
-
def choose_branch_to_deploy(project_name)
|
1073
|
+
def choose_branch_to_deploy(project_name, select_master = false)
|
1076
1074
|
Dir.chdir "projects/#{project_name}"
|
1077
1075
|
output "Recupero la lista dei branch del progetto #{project_name}..."
|
1078
1076
|
out = %x[ git fetch ]
|
1079
1077
|
branches = %x[ git for-each-ref --sort=-committerdate refs/remotes/ --format='%(refname) %(objectname)' | sed 's/refs\\/remotes\\/origin\\///g' ]
|
1080
1078
|
.split("\n").delete_if { |b| b.include?('HEAD') || b.include?('dev') }[0..49]
|
1081
1079
|
|
1082
|
-
|
1083
|
-
menu.prompt = "Scegli il branch di #{project_name} da deployare: ".cyan
|
1084
|
-
menu.shell = true
|
1080
|
+
master_branch = nil
|
1085
1081
|
|
1086
|
-
|
1082
|
+
branches.each do |branch|
|
1083
|
+
master_branch = branch if branch.match(/^master\s+/)
|
1084
|
+
break unless master_branch.nil?
|
1085
|
+
end
|
1086
|
+
|
1087
|
+
if select_master
|
1088
|
+
branch_name = master_branch
|
1089
|
+
else
|
1090
|
+
branch_name = choose do |menu|
|
1091
|
+
menu.prompt = "Scegli il branch di #{project_name} da deployare: ".cyan
|
1092
|
+
menu.shell = true
|
1087
1093
|
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1094
|
+
branches.each do |branch|
|
1095
|
+
title = @prima.reduce_size(branch, 100)
|
1096
|
+
msg = "#{title}".light_blue
|
1097
|
+
menu.choice(msg) { branch }
|
1098
|
+
menu.default = branch if branch == master_branch
|
1099
|
+
end
|
1091
1100
|
end
|
1092
1101
|
end
|
1093
1102
|
|
@@ -1102,6 +1111,24 @@ class Release
|
|
1102
1111
|
File.readlines("bin/local_build_artifact.sh").grep(/DEPLOY_ID=\$4/).size > 0
|
1103
1112
|
end
|
1104
1113
|
|
1114
|
+
def select_branches(project_name = nil)
|
1115
|
+
if project_name.nil?
|
1116
|
+
@projects["prima"] = choose_branch_to_deploy('prima')
|
1117
|
+
@projects["backoffice"] = choose_branch_to_deploy('backoffice')
|
1118
|
+
@projects["urania"] = choose_branch_to_deploy('urania')
|
1119
|
+
@projects["ermes"] = choose_branch_to_deploy('ermes')
|
1120
|
+
@projects["bburago"] = choose_branch_to_deploy('bburago')
|
1121
|
+
@projects["hal9000"] = choose_branch_to_deploy('hal9000')
|
1122
|
+
@projects["fidaty"] = choose_branch_to_deploy('fidaty')
|
1123
|
+
else
|
1124
|
+
stop_unless File.directory?("./projects/#{project_name}"), "progetto #{project_name} inesistente o non supportato"
|
1125
|
+
@projects[project_name] = choose_branch_to_deploy(project_name)
|
1126
|
+
@projects.each_key do |branch_project|
|
1127
|
+
@projects[branch_project] = choose_branch_to_deploy(branch_project, true) unless branch_project == project_name
|
1128
|
+
end
|
1129
|
+
end
|
1130
|
+
end
|
1131
|
+
|
1105
1132
|
end
|
1106
1133
|
|
1107
1134
|
def help_content
|
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.18.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: 2017-02-
|
14
|
+
date: 2017-02-13 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: twig
|