smartcloud 0.0.151 → 0.0.152

Sign up to get free protection for your applications and to get access to all the features.
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