Commit 94cff49
config/deploy.rb
@@ -1,5 +1,6 @@
# config valid only for current version of Capistrano
lock "3.4.0"
+$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
set :application, "stronglifters"
set :repo_url, "git@github.com:stronglifters/surface.git"
@@ -11,9 +12,8 @@ set :branch, "master"
# Default deploy_to directory is /var/www/my_app_name
# set :deploy_to, "/var/www/my_app_name"
-$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
# Default value for :scm is :git
-#set :scm, :git
+# set :scm, :git
set :scm, :s3
set :bucket_name, "stronglifters"
lib/capistrano/s3.rb
@@ -1,6 +1,6 @@
load File.expand_path("../../tasks/s3.rake", __FILE__)
-require 'capistrano/scm'
+require "capistrano/scm"
class Capistrano::S3 < Capistrano::SCM
def s3(*args)
@@ -24,12 +24,16 @@ class Capistrano::S3 < Capistrano::SCM
end
def update
- s3 "cp s3://#{bucket_name}/#{rails_env}/#{build_revision} #{repo_path}/#{build_revision}"
+ source = "s3://#{bucket_name}/#{rails_env}/#{build_revision}"
+ destination = "#{repo_path}/#{build_revision}"
+ s3 "cp #{source} #{destination}"
end
def release
context.execute("mkdir -p #{release_path}")
- context.execute("tar -xvzf #{repo_path}/#{build_revision} --strip-components=1 -C #{release_path}")
+ path = "#{repo_path}/#{build_revision}"
+ strip = "--strip-components=1"
+ context.execute("tar -xvzf #{path} #{strip} -C #{release_path}")
end
def bucket_name
@@ -41,7 +45,9 @@ class Capistrano::S3 < Capistrano::SCM
end
def build_revision
- context.capture(:aws, "s3 ls #{bucket_name}/#{rails_env}/ | sort | tail -n1 | awk '{ print $4 }'").strip
+ awk = "awk '{ print $4 }'"
+ command = "s3 ls #{bucket_name}/#{rails_env}/ | sort | tail -n1 | #{awk}"
+ context.capture(:aws, command).strip
end
end
end
Capfile
@@ -20,8 +20,8 @@ require 'capistrano/rbenv'
# require 'capistrano/chruby'
require 'capistrano/bundler'
require 'capistrano/rails'
-#require 'capistrano/rails/assets'
-#require 'capistrano/rails/migrations'
+# require 'capistrano/rails/assets'
+# require 'capistrano/rails/migrations'
# require 'capistrano/passenger'
# Load custom tasks from `lib/capistrano/tasks` if you have any defined