capistrano-nomad 0.12.0 → 0.12.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d14fcb69aa16bc0815770535ac91e2eef6ef6bbbebc372b2278267912389f68d
4
- data.tar.gz: 8a031005e8a27ce2ac50a6cd8f026290b4f6bd3e482b3acc6d819adfb668cc3a
3
+ metadata.gz: 6d34d3ae527de70b6bd8168b0054e92cd52d098fed4d21180b1fb1f1bbd01d04
4
+ data.tar.gz: e48dc773cd3a8433c507e97ae5299cf96255afcb1d3a07386635bd28d9697303
5
5
  SHA512:
6
- metadata.gz: fc3c5fc5c9a43e97e3277e53120ffcf88f14e9436d34742fad563221d8a003e7d9a2d56c93cbd7dad8676f711f86235b6715cd259a037db320c5876bc8f62bf2
7
- data.tar.gz: a21adbbb7fc30eac19788733406fbeae0840c8bfab8ece91ee69fc202a35ef200ae8c62000321a6b3562d7d56bb1c4d7408189fcc6276e1d6e7fdbb8407e2494
6
+ metadata.gz: '078c8ca031513bc8b0f0a0cba6e1e390611981c873b5cab880025a10cf5ef898edd3034c4ee94e287f442d25e3fc049d3cec4be3a0588fc6c7bf33e8ed88f391'
7
+ data.tar.gz: 35ce5309245c29dd3f5363bce2bbd0638c9810d32993ce5d68bfad886fff22302d4be1b45757bf7562c47b9f8f41c1abb349e5d7a244eb56eb91eb2428de7b64
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- capistrano-nomad (0.12.0)
4
+ capistrano-nomad (0.12.1)
5
5
  activesupport (<= 7.0.8)
6
6
  byebug
7
7
  capistrano (~> 3.0)
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "capistrano-nomad"
5
- spec.version = "0.12.0"
5
+ spec.version = "0.12.1"
6
6
  spec.authors = ["James Hu"]
7
7
 
8
8
  spec.summary = "Capistrano plugin for deploying and managing Nomad jobs"
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  # Specify which files should be added to the gem when it is released.
19
19
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
20
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
21
- `git ls-files -z`.split("\x0").reject do |f|
21
+ %x(git ls-files -z).split("\x0").reject do |f|
22
22
  (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
23
23
  end
24
24
  end
@@ -27,13 +27,13 @@ Gem::Specification.new do |spec|
27
27
  spec.require_paths = ["lib"]
28
28
 
29
29
  # Uncomment to register a new dependency of your gem
30
- spec.add_dependency "activesupport", "<= 7.0.8"
31
- spec.add_dependency "byebug"
32
- spec.add_dependency "capistrano", "~> 3.0"
33
- spec.add_dependency "git"
34
- spec.add_dependency "rake", "~> 13.0"
35
- spec.add_dependency "sshkit"
36
- spec.add_dependency "sshkit-interactive"
30
+ spec.add_dependency("activesupport", "<= 7.0.8")
31
+ spec.add_dependency("byebug")
32
+ spec.add_dependency("capistrano", "~> 3.0")
33
+ spec.add_dependency("git")
34
+ spec.add_dependency("rake", "~> 13.0")
35
+ spec.add_dependency("sshkit")
36
+ spec.add_dependency("sshkit-interactive")
37
37
 
38
38
  # For more information and examples about making a new gem, check out our
39
39
  # guide at: https://bundler.io/guides/creating_gem.html
@@ -59,115 +59,116 @@ def nomad_job(name, attributes = {})
59
59
  description_name << name.to_s
60
60
 
61
61
  namespace(name) do
62
- desc "Build #{description_name} job Docker images"
63
- task :build do
62
+ desc("Build #{description_name} job Docker images")
63
+ task(:build) do
64
64
  capistrano_nomad_build_jobs_docker_images([name], namespace: namespace)
65
65
  end
66
66
 
67
- desc "Push #{description_name} job Docker images"
68
- task :push do
67
+ desc("Push #{description_name} job Docker images")
68
+ task(:push) do
69
69
  capistrano_nomad_push_jobs_docker_images([name], namespace: namespace)
70
70
  end
71
71
 
72
- desc "Build and push #{description_name} job Docker images"
73
- task :assemble do
72
+ desc("Build and push #{description_name} job Docker images")
73
+ task(:assemble) do
74
74
  capistrano_nomad_build_jobs_docker_images([name], namespace: namespace)
75
75
  capistrano_nomad_push_jobs_docker_images([name], namespace: namespace)
76
76
  end
77
77
 
78
- desc "Upload #{description_name} job and related files"
79
- task :upload do
78
+ desc("Upload #{description_name} job and related files")
79
+ task(:upload) do
80
80
  capistrano_nomad_upload_jobs([name], namespace: namespace)
81
81
  end
82
82
 
83
- desc "Run #{description_name} job"
84
- task :run do
83
+ desc("Run #{description_name} job")
84
+ task(:run) do
85
85
  capistrano_nomad_run_jobs([name], namespace: namespace, is_detached: false)
86
86
  end
87
87
 
88
- desc "Purge and run #{description_name} job again"
89
- task :rerun do
88
+ desc("Purge and run #{description_name} job again")
89
+ task(:rerun) do
90
90
  capistrano_nomad_rerun_jobs([name], namespace: namespace, is_detached: false)
91
91
  end
92
92
 
93
- desc "Upload and plan #{description_name} job"
94
- task :upload_plan do
93
+ desc("Upload and plan #{description_name} job")
94
+ task(:upload_plan) do
95
95
  capistrano_nomad_upload_plan_jobs([name], namespace: namespace)
96
96
  end
97
97
 
98
- desc "Upload and run #{description_name} job"
99
- task :upload_run do
98
+ desc("Upload and run #{description_name} job")
99
+ task(:upload_run) do
100
100
  capistrano_nomad_upload_run_jobs([name], namespace: namespace, is_detached: false)
101
101
  end
102
102
 
103
- desc "Upload and re-run #{description_name} job"
104
- task :upload_rerun do
103
+ desc("Upload and re-run #{description_name} job")
104
+ task(:upload_rerun) do
105
105
  capistrano_nomad_upload_rerun_jobs([name], namespace: namespace, is_detached: false)
106
106
  end
107
107
 
108
- desc "Deploy #{description_name} job"
109
- task :deploy do
108
+ desc("Deploy #{description_name} job")
109
+ task(:deploy) do
110
110
  capistrano_nomad_deploy_jobs([name], namespace: namespace, is_detached: false)
111
111
  end
112
112
 
113
- desc "Stop #{description_name} job"
114
- task :stop do
113
+ desc("Stop #{description_name} job")
114
+ task(:stop) do
115
115
  capistrano_nomad_stop_jobs([name], namespace: namespace)
116
116
  end
117
117
 
118
- desc "Restart #{description_name} job"
119
- task :restart do
118
+ desc("Restart #{description_name} job")
119
+ task(:restart) do
120
120
  capistrano_nomad_restart_jobs([name], namespace: namespace)
121
121
  end
122
122
 
123
- desc "Revert #{description_name} job. Specify version with VERSION. Specify targeting tasks with docker image with DOCKER_IMAGE. If none specified, it will revert to previous version"
124
- task :revert do
125
- capistrano_nomad_revert_jobs([name], ENV["VERSION"].presence,
123
+ desc("Revert #{description_name} job. Specify version with VERSION. Specify targeting tasks with docker image with DOCKER_IMAGE. If none specified, it will revert to previous version")
124
+ task(:revert) do
125
+ capistrano_nomad_revert_jobs([name],
126
126
  namespace: namespace,
127
+ version: ENV["VERSION"],
127
128
  docker_image: ENV["DOCKER_IMAGE"],
128
129
  )
129
130
  end
130
131
 
131
- desc "Purge #{description_name} job"
132
- task :purge do
132
+ desc("Purge #{description_name} job")
133
+ task(:purge) do
133
134
  capistrano_nomad_purge_jobs([name], namespace: namespace, is_detached: false)
134
135
  end
135
136
 
136
- desc "Display status of #{description_name} job"
137
- task :status do
137
+ desc("Display status of #{description_name} job")
138
+ task(:status) do
138
139
  capistrano_nomad_display_job_status(name, namespace: namespace)
139
140
  end
140
141
 
141
- desc "Open console to #{description_name} job. Specify task with TASK, command with CMD"
142
- task :console do
142
+ desc("Open console to #{description_name} job. Specify task with TASK, command with CMD")
143
+ task(:console) do
143
144
  command = ENV["CMD"].presence || "/bin/sh"
144
145
 
145
146
  capistrano_nomad_exec_within_job(name, command, namespace: namespace, task: ENV["TASK"])
146
147
  end
147
148
 
148
- desc "Display stdout and stderr of #{description_name} job. Specify task with TASK"
149
- task :logs do
149
+ desc("Display stdout and stderr of #{description_name} job. Specify task with TASK")
150
+ task(:logs) do
150
151
  capistrano_nomad_tail_job_logs(name, namespace: namespace, stdout: true)
151
152
  capistrano_nomad_tail_job_logs(name, namespace: namespace, stderr: true)
152
153
  end
153
154
 
154
- desc "Display stdout of #{description_name} job. Specify task with TASK"
155
- task :stdout do
155
+ desc("Display stdout of #{description_name} job. Specify task with TASK")
156
+ task(:stdout) do
156
157
  capistrano_nomad_tail_job_logs(name, namespace: namespace, stdout: true)
157
158
  end
158
159
 
159
- desc "Display stderr of #{description_name} job. Specify task with TASK"
160
- task :stderr do
160
+ desc("Display stderr of #{description_name} job. Specify task with TASK")
161
+ task(:stderr) do
161
162
  capistrano_nomad_tail_job_logs(name, namespace: namespace, stderr: true)
162
163
  end
163
164
 
164
- desc "Follow logs of #{description_name} job. Specify task with TASK"
165
- task :follow do
165
+ desc("Follow logs of #{description_name} job. Specify task with TASK")
166
+ task(:follow) do
166
167
  capistrano_nomad_display_job_logs(name, namespace: namespace, f: true)
167
168
  end
168
169
 
169
- desc "Open job in web UI"
170
- task :ui do
170
+ desc("Open job in web UI")
171
+ task(:ui) do
171
172
  capistrano_nomad_open_job_ui(name, namespace: namespace)
172
173
  end
173
174
  end
@@ -305,85 +305,85 @@ end
305
305
 
306
306
  def capistrano_nomad_define_group_tasks(namespace:)
307
307
  define_tasks = lambda do |nomad_namespace: nil|
308
- desc "Build #{nomad_namespace} job Docker images"
309
- task :build do
308
+ desc("Build #{nomad_namespace} job Docker images")
309
+ task(:build) do
310
310
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
311
311
  capistrano_nomad_push_jobs_docker_images(names, namespace: jobs_namespace)
312
312
  end
313
313
  end
314
314
 
315
- desc "Push #{nomad_namespace} job Docker images"
316
- task :push do
315
+ desc("Push #{nomad_namespace} job Docker images")
316
+ task(:push) do
317
317
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
318
318
  capistrano_nomad_push_jobs_docker_images(names, namespace: jobs_namespace)
319
319
  end
320
320
  end
321
321
 
322
- desc "Build and push #{nomad_namespace} job Docker images"
323
- task :assemble do
322
+ desc("Build and push #{nomad_namespace} job Docker images")
323
+ task(:assemble) do
324
324
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
325
325
  capistrano_nomad_assemble_jobs_docker_images(names, namespace: jobs_namespace)
326
326
  end
327
327
  end
328
328
 
329
- desc "Upload #{nomad_namespace} jobs"
330
- task :upload do
329
+ desc("Upload #{nomad_namespace} jobs")
330
+ task(:upload) do
331
331
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
332
332
  capistrano_nomad_upload_jobs(names, namespace: jobs_namespace)
333
333
  end
334
334
  end
335
335
 
336
- desc "Run #{nomad_namespace} jobs"
337
- task :run do
336
+ desc("Run #{nomad_namespace} jobs")
337
+ task(:run) do
338
338
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
339
339
  capistrano_nomad_run_jobs(names, namespace: jobs_namespace)
340
340
  end
341
341
  end
342
342
 
343
- desc "Upload and run #{nomad_namespace} jobs"
344
- task :upload_run do
343
+ desc("Upload and run #{nomad_namespace} jobs")
344
+ task(:upload_run) do
345
345
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
346
346
  capistrano_nomad_upload_run_jobs(names, namespace: jobs_namespace)
347
347
  end
348
348
  end
349
349
 
350
- desc "Deploy #{nomad_namespace} jobs"
351
- task :deploy do
350
+ desc("Deploy #{nomad_namespace} jobs")
351
+ task(:deploy) do
352
352
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
353
353
  capistrano_nomad_deploy_jobs(names, namespace: jobs_namespace)
354
354
  end
355
355
  end
356
356
 
357
- desc "Rerun #{nomad_namespace} jobs"
358
- task :rerun do
357
+ desc("Rerun #{nomad_namespace} jobs")
358
+ task(:rerun) do
359
359
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
360
360
  capistrano_nomad_rerun_jobs(names, namespace: jobs_namespace)
361
361
  end
362
362
  end
363
363
 
364
- desc "Restart #{nomad_namespace} jobs"
365
- task :restart do
364
+ desc("Restart #{nomad_namespace} jobs")
365
+ task(:restart) do
366
366
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
367
367
  capistrano_nomad_restart_jobs(names, namespace: jobs_namespace)
368
368
  end
369
369
  end
370
370
 
371
- desc "Revert #{nomad_namespace} jobs"
372
- task :revert do
371
+ desc("Revert #{nomad_namespace} jobs")
372
+ task(:revert) do
373
373
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
374
374
  capistrano_nomad_revert_jobs(names, namespace: jobs_namespace)
375
375
  end
376
376
  end
377
377
 
378
- desc "Stop #{nomad_namespace} jobs"
379
- task :stop do
378
+ desc("Stop #{nomad_namespace} jobs")
379
+ task(:stop) do
380
380
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
381
381
  capistrano_nomad_stop_jobs(names, namespace: jobs_namespace)
382
382
  end
383
383
  end
384
384
 
385
- desc "Purge #{nomad_namespace} jobs"
386
- task :purge do
385
+ desc("Purge #{nomad_namespace} jobs")
386
+ task(:purge) do
387
387
  capistrano_nomad_fetch_jobs_names_by_namespace(namespace: nomad_namespace).each do |jobs_namespace, names|
388
388
  capistrano_nomad_purge_jobs(names, namespace: jobs_namespace)
389
389
  end
@@ -546,15 +546,16 @@ def capistrano_nomad_purge_jobs(names, is_detached: true, **options)
546
546
  end
547
547
  end
548
548
 
549
- def capistrano_nomad_revert_jobs(names, version, docker_image: nil, **options)
549
+ def capistrano_nomad_revert_jobs(names, version: nil, docker_image: nil, **options)
550
550
  capistrano_nomad_ensure_options!(**options)
551
551
  versions_by_job_name = {}
552
552
 
553
553
  names.each do |name|
554
554
  history_output_json = capistrano_nomad_display_job_history(name, **options.reverse_merge(json: true))
555
555
  history_output = JSON.parse(history_output_json)
556
-
557
- versions_by_job_name[name] = if docker_image
556
+ versions_by_job_name[name] = if version.presence
557
+ version
558
+ elsif docker_image.presence
558
559
  # Find job history with matching docker image
559
560
  docker_image_job_history = history_output.find do |job_history|
560
561
  task_images = job_history.dig("TaskGroups")
@@ -570,8 +571,8 @@ def capistrano_nomad_revert_jobs(names, version, docker_image: nil, **options)
570
571
  end
571
572
 
572
573
  docker_image_job_history.dig("Version")
574
+ # Revert to previous version if nothing specified
573
575
  else
574
- # If no version specified then revert to previous version
575
576
  history_output[1].dig("Version")
576
577
  end
577
578
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-nomad
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Hu