capistrano-nomad 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c292b51cccede02b32828727665d5db05ef156680bd30c36d828efb24b92487
4
- data.tar.gz: 74bbb0362226b713380e368e6c4a1a9ebd15d11f35a93879cc047ccf167ae31b
3
+ metadata.gz: e1d44671f9ed79b03419c3de79d4b938652eb3f35f3553450f4e5118fadeb596
4
+ data.tar.gz: 3a6afdc265f7f434774f960e1aa2a9c5950cd8da00c02dbf21407c752ec2bb22
5
5
  SHA512:
6
- metadata.gz: f26c0cce3bc2a23e46edf0499d2f3d959e9247292043bffac86f0b1a415e6fad654930a1133a8d73c0255b6b31476b5b114b97d42f070193804c59d096fccb51
7
- data.tar.gz: 48173cbf24f482fea49d1766fe83d92165f4e268da1f2fb729877aff5ee148ca8ab03c41d26ace981e9ae77abd99581e4f69b9a892053d9cd5e37e7e574a964f
6
+ metadata.gz: 511bf835646bbfb0f5ec7bc0fe5dd575cd34b4a72573d73457ce07830284ad01260521bbdb2cc8a829e1ad535d78cbece3d041ed32f546efbd274090934523db
7
+ data.tar.gz: d576b13a85867cc3916dd32a7a26ece7aecdda4b1b14bc20a451f24a7bbeb48f3aef1144d3952e9e5ad831f06c33cb609fd41390bb40d2a29e0754254c48f098
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- capistrano-nomad (0.2.2)
4
+ capistrano-nomad (0.3.0)
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.2.2"
5
+ spec.version = "0.3.0"
6
6
  spec.authors = ["James Hu"]
7
7
 
8
8
  spec.summary = "Capistrano plugin for deploying and managing Nomad jobs"
@@ -1,3 +1,7 @@
1
+ def capistrano_nomad_root
2
+ Pathname.new(fetch(:root) || "")
3
+ end
4
+
1
5
  def capistrano_nomad_deep_symbolize_hash_keys(hash)
2
6
  JSON.parse(JSON[hash], symbolize_names: true)
3
7
  end
@@ -61,16 +61,18 @@ def capistrano_nomad_build_docker_image(image_type, path, *args)
61
61
  capistrano_nomad_build_docker_image_alias(image_type, git_commit_id),
62
62
  capistrano_nomad_build_docker_image_alias(image_type, "latest"),
63
63
  "trunk/#{fetch(:stage)}/#{image_type}:latest",
64
- ].each do |tag|
65
- args << "--tag #{tag}"
66
- end
64
+ ]
65
+ .compact
66
+ .each do |tag|
67
+ args << "--tag #{tag}"
68
+ end
67
69
 
68
70
  # If any of these files exist then we're in the middle of rebase so we should interrupt
69
- if ["rebase-merge", "rebase-apply"].any? { |f| File.exist?("#{fetch(:git).dir.path}/.git/#{f}") }
71
+ if ["rebase-merge", "rebase-apply"].any? { |f| File.exist?("#{capistrano_nomad_git.dir.path}/.git/#{f}") }
70
72
  raise StandardError, "still in the middle of git rebase, interrupting docker image build"
71
73
  end
72
74
 
73
- system "docker build #{args.join(' ')} #{path}"
75
+ system "docker build #{args.join(' ')} .#{capistrano_nomad_root.join(path)}"
74
76
  end
75
77
  end
76
78
 
@@ -1,7 +1,7 @@
1
1
  require "git"
2
2
 
3
3
  def capistrano_nomad_git
4
- Git.open(".")
4
+ @capistrano_nomad_git ||= Git.open(".")
5
5
  end
6
6
 
7
7
  def capistrano_nomad_fetch_git_commit_id
@@ -36,9 +36,6 @@ class NomadErbNamespace
36
36
  end
37
37
 
38
38
  def capistrano_nomad_build_file_path(parent_path, basename, namespace: nil)
39
- # Remove initial slash if it exists
40
- parent_path = parent_path[1..] if parent_path[0] == "/"
41
-
42
39
  segments = [parent_path]
43
40
  segments << namespace if namespace
44
41
  segments << "#{basename}.hcl"
@@ -54,19 +51,27 @@ def capistrano_nomad_build_base_var_file_path(*args)
54
51
  capistrano_nomad_build_file_path(fetch(:nomad_var_files_path), *args)
55
52
  end
56
53
 
57
- def capistrano_nomad_build_local_job_path(name, *args)
58
- local_path = fetch(:root).join(capistrano_nomad_build_base_job_path(name, *args))
54
+ def capistrano_nomad_build_local_path(path, *args)
55
+ local_path = ".#{capistrano_nomad_root.join(path)}"
59
56
 
60
57
  # Determine if it has .erb appended or not
61
58
  [local_path, "#{local_path}.erb"].find { |path| File.exist?(path) }
62
59
  end
63
60
 
61
+ def capistrano_nomad_build_local_job_path(name, *args)
62
+ capistrano_nomad_build_local_path(capistrano_nomad_build_base_job_path(name, *args))
63
+ end
64
+
65
+ def capistrano_nomad_build_local_var_file_path(name, *args)
66
+ capistrano_nomad_build_local_path(capistrano_nomad_build_base_var_file_path(name, *args))
67
+ end
68
+
64
69
  def capistrano_nomad_build_release_job_path(*args)
65
- "#{release_path}/#{capistrano_nomad_build_base_job_path(*args)}"
70
+ "#{release_path}#{capistrano_nomad_build_base_job_path(*args)}"
66
71
  end
67
72
 
68
73
  def capistrano_nomad_build_release_var_file_path(*args)
69
- "#{release_path}/#{capistrano_nomad_build_base_var_file_path(*args)}"
74
+ "#{release_path}#{capistrano_nomad_build_base_var_file_path(*args)}"
70
75
  end
71
76
 
72
77
  def capistrano_nomad_execute_nomad_command(*args)
@@ -158,7 +163,7 @@ def capistrano_nomad_build_jobs_docker_images(names, *args)
158
163
 
159
164
  return false if image_types.empty?
160
165
 
161
- image_types.each { |i| capistrano_nomad_build_docker_image_for_type(i, *args) }
166
+ image_types.each { |i| capistrano_nomad_build_docker_image_for_type(i) }
162
167
  end
163
168
 
164
169
  def capistrano_nomad_push_jobs_docker_images(names, *args)
@@ -166,7 +171,7 @@ def capistrano_nomad_push_jobs_docker_images(names, *args)
166
171
 
167
172
  return false if image_types.empty?
168
173
 
169
- image_types.each { |i| capistrano_nomad_push_docker_image_for_type(i, *args) }
174
+ image_types.each { |i| capistrano_nomad_push_docker_image_for_type(i) }
170
175
  end
171
176
 
172
177
  def capistrano_nomad_assemble_jobs_docker_images(names, *args)
@@ -180,7 +185,7 @@ def capistrano_nomad_upload_jobs(names, *args)
180
185
 
181
186
  uniq_var_files.each do |var_file|
182
187
  capistrano_nomad_upload_file(
183
- local_path: capistrano_nomad_build_base_var_file_path(var_file, *args),
188
+ local_path: capistrano_nomad_build_local_var_file_path(var_file, *args),
184
189
  remote_path: capistrano_nomad_build_release_var_file_path(var_file, *args),
185
190
  )
186
191
  end
@@ -196,7 +201,7 @@ def capistrano_nomad_upload_jobs(names, *args)
196
201
  file_basename = nomad_job_options[:template] || name
197
202
 
198
203
  capistrano_nomad_upload_file(
199
- local_path: capistrano_nomad_build_base_job_path(file_basename, *args),
204
+ local_path: capistrano_nomad_build_local_job_path(file_basename, *args),
200
205
  remote_path: capistrano_nomad_build_release_job_path(name, *args),
201
206
  erb_vars: erb_vars,
202
207
  )
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.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Hu