smartcloud 0.0.151 → 0.0.152

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/smartcloud/grids/runner.rb +34 -38
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2a18735b026181f5e90dad4741681d35470e1f26ebd8c0547c8edde06293b077
4
- data.tar.gz: 7330097d043ba14c784b1e0fad727e01d33ed6ac0e0334e608034d3487515bc6
3
+ metadata.gz: 3146224d7a28c5f2be95c7c1df25a6aee6f389063869f6c779203835522b1371
4
+ data.tar.gz: 68e4fd2197a102fbe154f941342d5073a0fdfc071bae2cc60e6580b4a78610f0
5
5
  SHA512:
6
- metadata.gz: 458a67c95aab46fcff93735b5910755b2604b900ff0d25803f1d73e0a8a89c9d314260bde8bbdaae83c84abf1c51c3f858ce8d98917570353bae45e485347224
7
- data.tar.gz: 41a670101a7f60efbc2577d7daac16d8a91c685045cbba1206e337d0d9b1b18aca5e202b856cc45c084fba1e34fb239ff76f2fdfd71b0c25ec5b18c3162bf3c1
6
+ metadata.gz: aaa85bfdcf08755d72b2bc56185c8fb37b1874a174d96f697c52fc75aff92adb13073a6cbccf2d80711065e9a4e2661bc1d11adb7f5988569e9a64542eee5498
7
+ data.tar.gz: 91212d5681a150e13e144f73bd96c6c4ae4bf6844140a3c83d17a74c891495bc0b7a3821bffca40c7c9cb0de99b508ca37f0dedc7abb79b459189e27bc428cab
@@ -220,16 +220,16 @@ module Smartcloud
220
220
 
221
221
  def self.prereceive_app(appname, username, oldrev, newrev, refname)
222
222
  logger.formatter = proc do |severity, datetime, progname, message|
223
- "\t\t\t#{severity}: #{message}\n"
223
+ "\t\t\t-----> #{severity}: #{message}\n"
224
224
  end
225
225
 
226
226
  container_path = "#{Smartcloud.config.user_home_path}/.smartcloud/grids/grid-runner/apps/containers/#{appname}"
227
227
 
228
228
  ## Verify the user and ensure the user is correct and has access to this repository
229
- logger.info "-----> Verifying User ... "
229
+ logger.info "Verifying User ..."
230
230
  unless File.exist? "#{container_path}/env"
231
- puts "Environment could not be loaded ... Failed."
232
- exit 1
231
+ logger.fatal "Environment could not be loaded ... Failed."
232
+ return
233
233
  end
234
234
 
235
235
  # Load ENV vars
@@ -242,16 +242,14 @@ module Smartcloud
242
242
 
243
243
  # Match Username
244
244
  unless ENV['USERNAME'] == username
245
- puts "Unauthorized."
246
- exit 1
245
+ logger.error "Unauthorized."
246
+ return
247
247
  end
248
- logger.formatter = nil
249
- logger.info "done"
250
248
 
251
249
  # Only run this script for the master branch. You can remove this
252
250
  # if block if you wish to run it for others as well.
253
251
  if refname == "refs/heads/master"
254
- logger.info "-----> Initializing Application ... "
252
+ logger.info "Loading Application ..."
255
253
 
256
254
  # Note: There should be no space between + and " in version.
257
255
  # Note: date will be UTC date until timezone has been changed.
@@ -261,30 +259,15 @@ module Smartcloud
261
259
  unless Dir.exist? container_path_with_version
262
260
  FileUtils.mkdir_p(container_path_with_version)
263
261
  if system("git archive #{newrev} | tar -x -C #{container_path_with_version}")
264
- puts "done"
265
-
266
- # Clean up very old versions
267
- Dir.chdir("#{container_path}/releases") do
268
- app_versions = Dir.glob('*').select { |f| File.directory? f }.sort
269
- destroy_count = app_versions.count - ENV['KEEP_RELEASES'].to_i
270
- if destroy_count > 0
271
- print "-----> Deleting older application releases ... "
272
- destroy_count.times do
273
- FileUtils.rm_r(File.join(Dir.pwd, app_versions.shift))
274
- end
275
- puts "done"
276
- end
277
- end
278
-
279
262
  # Start App
280
263
  self.start_app(appname)
281
264
  else
282
- puts "Could not extract new app version ... Failed."
283
- exit 1
265
+ logger.fatal "Could not extract new app version ... Failed."
266
+ return
284
267
  end
285
268
  else
286
- puts "This version name already exists ... Failed."
287
- exit 1
269
+ logger.fatal "This version name already exists ... Failed."
270
+ return
288
271
  end
289
272
  end
290
273
 
@@ -307,7 +290,7 @@ module Smartcloud
307
290
  buildpacker_path = "#{Smartcloud.config.root_path}/lib/smartcloud/grids/grid-runner/buildpacks/buildpacker.rb"
308
291
  FileUtils.cp(buildpacker_path, container_path_with_version)
309
292
 
310
- puts "-----> Launching Application ... "
293
+ logger.info "Launching Application ..."
311
294
 
312
295
  if File.exist? "#{container_path_with_version}/bin/rails"
313
296
  # Stopping & Removing container
@@ -322,19 +305,16 @@ module Smartcloud
322
305
  # These two lines are important to stop and remove container and then cancel pre-receive push if finally the app could not be started.
323
306
  # If the app was finally started, then these two lines should never be executed.
324
307
  self.stop_app(appname)
325
- exit 1
326
308
  end
327
309
 
328
310
  def self.stop_app(appname)
329
311
  if Smartcloud::Docker.running?
330
312
  if system("docker inspect -f '{{.State.Running}}' #{appname}", [:out, :err] => File::NULL)
331
- print "-----> Stopping container #{appname} ... "
313
+ logger.debug "Stopping container #{appname} ..."
332
314
  if system("docker stop '#{appname}'", out: File::NULL)
333
- puts "done"
334
-
335
- print "-----> Removing container #{appname} ... "
315
+ logger.debug "Removing container #{appname} ..."
336
316
  if system("docker rm '#{appname}'", out: File::NULL)
337
- puts "done"
317
+ logger.info "Stopped & Removed #{appname} ..."
338
318
  end
339
319
  end
340
320
  end
@@ -342,7 +322,7 @@ module Smartcloud
342
322
  end
343
323
 
344
324
  def self.start_app_rails(appname, container_path, container_path_with_version)
345
- puts "-----> Ruby on Rails application detected."
325
+ logger.info "Ruby on Rails application detected"
346
326
 
347
327
  # Setup rails env
348
328
  env_path = "#{container_path}/env"
@@ -353,7 +333,7 @@ module Smartcloud
353
333
  system("grep -q '^RAILS_SERVE_STATIC_FILES=' #{env_path} || echo 'RAILS_SERVE_STATIC_FILES=enabled' >> #{env_path}")
354
334
  system("grep -q '^LANG=' #{env_path} || echo 'LANG=en_US.UTF-8' >> #{env_path}")
355
335
  system("grep -q '^RAILS_MASTER_KEY=' #{env_path} || echo 'RAILS_MASTER_KEY=yourmasterkey' >> #{env_path}")
356
- logger.warn "-----> WARNING: Please set your RAILS_MASTER_KEY env var for this rails app." if system("grep -q '^RAILS_MASTER_KEY=yourmasterkey' #{env_path}")
336
+ logger.warn "WARNING: Please set your RAILS_MASTER_KEY env var for this rails app." if system("grep -q '^RAILS_MASTER_KEY=yourmasterkey' #{env_path}")
357
337
 
358
338
  # Setup gems folder. If this is not created then docker will create it while running the container,
359
339
  # but the folder will have root user assigned instead of the current user.
@@ -361,7 +341,7 @@ module Smartcloud
361
341
 
362
342
  # Setup Godfile
363
343
  unless File.exist? "#{container_path_with_version}/Godfile"
364
- puts "-----> WARNING: Godfile not detected. Adding a default Godfile. It is recommended to add your own Godfile."
344
+ logger.warn "WARNING: Godfile not detected. Adding a default Godfile. It is recommended to add your own Godfile."
365
345
  page = <<~HEREDOC
366
346
  God.watch do |w|
367
347
  w.name = 'web'
@@ -389,6 +369,22 @@ module Smartcloud
389
369
  system("docker network connect mysql-network #{appname}")
390
370
 
391
371
  system("docker start --attach #{appname}")
372
+ self.clean_up(container_path)
373
+ end
374
+ end
375
+
376
+ def self.clean_up(container_path)
377
+ logger.info "Cleaning up ..."
378
+
379
+ # Clean up very old versions
380
+ Dir.chdir("#{container_path}/releases") do
381
+ app_versions = Dir.glob('*').select { |f| File.directory? f }.sort
382
+ destroy_count = app_versions.count - ENV['KEEP_RELEASES'].to_i
383
+ if destroy_count > 0
384
+ destroy_count.times do
385
+ FileUtils.rm_r(File.join(Dir.pwd, app_versions.shift))
386
+ end
387
+ end
392
388
  end
393
389
  end
394
390
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartcloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.151
4
+ version: 0.0.152
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timeboard