prima-twig 0.17.2 → 0.18.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.
- 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
|