lbhrr 1.0.22 → 1.0.24
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/exe/lbhrr +62 -54
- data/lib/lbhrr/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd06f5b2b2c2ead4e766e8db02df61b8e698cbf9a45c96ab63724c74644114d6
|
4
|
+
data.tar.gz: e2c15f6103ed1a0f4a1d9f356bb08ad7fdb8e7f6ac6245d27ef1eb0ee9c912be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ed7d928a8b43c5930aff091d063589843daf4d4975bf0f08f983e28492d4abadd5560477637747bb81cf581605125f8b426dc18d6730de7e8191a7c56c70178
|
7
|
+
data.tar.gz: 273804677d3c8e4bdb2916d9f5a09ea201a40ddc118c831c2942db69b81136f6fddf08c75980a818199beb5dc839f0769ddafd36ddf7f2bb8d74e973ff2d14d4
|
data/exe/lbhrr
CHANGED
@@ -5,7 +5,7 @@ class LbhrrCLI < Thor
|
|
5
5
|
no_commands do
|
6
6
|
|
7
7
|
def manifest?
|
8
|
-
File.join(Dir.pwd, "config","manifest.yml")
|
8
|
+
File.exist? File.join(Dir.pwd, "config","manifest.yml")
|
9
9
|
end
|
10
10
|
|
11
11
|
def package
|
@@ -32,8 +32,7 @@ class LbhrrCLI < Thor
|
|
32
32
|
system("git add .") or raise "Failed to add changes to Git"
|
33
33
|
system("git commit -m 'packaged #{version}'") or raise "Failed to commit changes to Git"
|
34
34
|
puts "Packaging completed successfully."
|
35
|
-
|
36
|
-
puts "Packaging error: #{e.message}"
|
35
|
+
|
37
36
|
end
|
38
37
|
|
39
38
|
def amend_last_commit(new_message)
|
@@ -194,7 +193,13 @@ class LbhrrCLI < Thor
|
|
194
193
|
user = config["user"]
|
195
194
|
|
196
195
|
if name.nil?
|
197
|
-
|
196
|
+
|
197
|
+
unless manifest?
|
198
|
+
puts "no manifest found!"
|
199
|
+
return
|
200
|
+
end
|
201
|
+
|
202
|
+
name = config["name"]
|
198
203
|
end
|
199
204
|
|
200
205
|
puts "Destroying app: #{name}"
|
@@ -205,50 +210,51 @@ class LbhrrCLI < Thor
|
|
205
210
|
|
206
211
|
desc "raise", "Deploy an application using the configuration from config/manifest.yml to staging"
|
207
212
|
def raise
|
208
|
-
|
213
|
+
if manifest?
|
214
|
+
|
215
|
+
package
|
216
|
+
|
217
|
+
|
218
|
+
config = load_configuration
|
219
|
+
host = config["host"]
|
220
|
+
user = config["user"]
|
221
|
+
raise "Host configuration missing" unless host
|
222
|
+
|
223
|
+
local_manifest_path = File.join(Dir.pwd, "config", "manifest.yml")
|
224
|
+
raise "Local manifest file not found at #{local_manifest_path}" unless File.exist?(local_manifest_path)
|
225
|
+
|
226
|
+
local_config = YAML.load_file(local_manifest_path) || {}
|
227
|
+
version = local_config["version"].to_i
|
228
|
+
raise "Version not specified in manifest.yml" unless version
|
229
|
+
|
230
|
+
basename = File.basename(Dir.pwd)
|
231
|
+
base_directory = "/var/harbr/containers/#{basename}"
|
232
|
+
versions_directory = "#{base_directory}/versions"
|
233
|
+
data_directory = "/var/dddr/#{basename}/"
|
234
|
+
destination_path = "#{versions_directory}/#{version}"
|
235
|
+
# Prepare the rsync exclude option using .gitignore
|
236
|
+
gitignore_path = File.join(Dir.pwd, ".gitignore")
|
237
|
+
exclude_option = File.exist?(gitignore_path) ? "--exclude='.git' --exclude-from='#{gitignore_path}'" : ""
|
238
|
+
|
239
|
+
|
240
|
+
# Check and create the versions directory on the server
|
241
|
+
`ssh #{user}@#{host} 'mkdir -p #{versions_directory}'`
|
242
|
+
`ssh #{user}@#{host} 'mkdir -p #{data_directory}'`
|
243
|
+
|
244
|
+
# Rsync files to the new version directory, excluding files as per .gitignore
|
245
|
+
rsync_command = "rsync -avz #{exclude_option} ./ #{user}@#{host}:#{destination_path}"
|
246
|
+
|
247
|
+
if `#{rsync_command}`
|
248
|
+
puts "Successfully deployed application version #{version} to #{host}"
|
249
|
+
deployed(local_manifest_path, version)
|
250
|
+
else
|
251
|
+
puts "Failed to deploy application version #{version} to #{host}"
|
252
|
+
end
|
253
|
+
|
254
|
+
else
|
209
255
|
puts "no manifest found!"
|
210
|
-
return
|
211
256
|
end
|
212
257
|
|
213
|
-
package
|
214
|
-
|
215
|
-
config = load_configuration
|
216
|
-
host = config["host"]
|
217
|
-
user = config["user"]
|
218
|
-
raise "Host configuration missing" unless host
|
219
|
-
|
220
|
-
local_manifest_path = File.join(Dir.pwd, "config", "manifest.yml")
|
221
|
-
raise "Local manifest file not found at #{local_manifest_path}" unless File.exist?(local_manifest_path)
|
222
|
-
|
223
|
-
local_config = YAML.load_file(local_manifest_path) || {}
|
224
|
-
version = local_config["version"].to_i
|
225
|
-
raise "Version not specified in manifest.yml" unless version
|
226
|
-
|
227
|
-
basename = File.basename(Dir.pwd)
|
228
|
-
base_directory = "/var/harbr/containers/#{basename}"
|
229
|
-
versions_directory = "#{base_directory}/versions"
|
230
|
-
data_directory = "/var/dddr/#{basename}/"
|
231
|
-
destination_path = "#{versions_directory}/#{version}"
|
232
|
-
# Prepare the rsync exclude option using .gitignore
|
233
|
-
gitignore_path = File.join(Dir.pwd, ".gitignore")
|
234
|
-
exclude_option = File.exist?(gitignore_path) ? "--exclude='.git' --exclude-from='#{gitignore_path}'" : ""
|
235
|
-
|
236
|
-
|
237
|
-
# Check and create the versions directory on the server
|
238
|
-
`ssh #{user}@#{host} 'mkdir -p #{versions_directory}'`
|
239
|
-
`ssh #{user}@#{host} 'mkdir -p #{data_directory}'`
|
240
|
-
|
241
|
-
# Rsync files to the new version directory, excluding files as per .gitignore
|
242
|
-
rsync_command = "rsync -avz #{exclude_option} ./ #{user}@#{host}:#{destination_path}"
|
243
|
-
|
244
|
-
if `#{rsync_command}`
|
245
|
-
puts "Successfully deployed application version #{version} to #{host}"
|
246
|
-
deployed(local_manifest_path, version)
|
247
|
-
else
|
248
|
-
puts "Failed to deploy application version #{version} to #{host}"
|
249
|
-
end
|
250
|
-
rescue => e
|
251
|
-
puts "Deployment error: #{e.message}"
|
252
258
|
end
|
253
259
|
|
254
260
|
desc "logs", "Show logs for a container"
|
@@ -265,7 +271,8 @@ class LbhrrCLI < Thor
|
|
265
271
|
return
|
266
272
|
end
|
267
273
|
|
268
|
-
container_name =
|
274
|
+
container_name = config["name"]
|
275
|
+
|
269
276
|
else
|
270
277
|
container_name = name
|
271
278
|
end
|
@@ -290,15 +297,15 @@ class LbhrrCLI < Thor
|
|
290
297
|
|
291
298
|
desc "hoist", "Deploy an application using the configuration from config/manifest.yml to production"
|
292
299
|
def hoist(name=nil)
|
300
|
+
config = load_configuration
|
301
|
+
host = config["host"]
|
302
|
+
user = config["user"]
|
303
|
+
|
293
304
|
if name.nil?
|
294
305
|
unless manifest?
|
295
306
|
puts "no manifest found!"
|
296
307
|
return
|
297
308
|
end
|
298
|
-
|
299
|
-
config = load_configuration
|
300
|
-
host = config["host"]
|
301
|
-
user = config["user"]
|
302
309
|
name = config["name"]
|
303
310
|
end
|
304
311
|
puts `ssh #{user}@#{host} 'harbr deploy #{name}'`
|
@@ -306,15 +313,16 @@ class LbhrrCLI < Thor
|
|
306
313
|
|
307
314
|
desc "rollback", "rollback an application using the configuration from config/manifest.yml"
|
308
315
|
def rollback(name=nil)
|
316
|
+
|
317
|
+
config = load_configuration
|
318
|
+
host = config["host"]
|
319
|
+
user = config["user"]
|
320
|
+
|
309
321
|
if name.nil?
|
310
322
|
unless manifest?
|
311
323
|
puts "no manifest found!"
|
312
324
|
return
|
313
325
|
end
|
314
|
-
|
315
|
-
config = load_configuration
|
316
|
-
host = config["host"]
|
317
|
-
user = config["user"]
|
318
326
|
name = config["name"]
|
319
327
|
end
|
320
328
|
puts `ssh #{user}@#{host} 'harbr rollback #{name}'`
|
data/lib/lbhrr/version.rb
CHANGED