Sha256: 2772add8e1150e50b493a6e40263b5a7d9f4d1d412ae5699347a31ea772ab01f

Contents?: true

Size: 1.5 KB

Versions: 6

Compression:

Stored size: 1.5 KB

Contents

require 'uri'

Capistrano::Configuration.instance(:must_exist).load do
  require "rvm/capistrano"
  set :rvm_type, :user

  role :staging, "www@staging.botandrose.com:22022"
  set :asset_paths, []

  namespace "data" do
    namespace "pull" do
      desc "pull data"
      task "default" do
        run "cd #{application} && bundle exec rake db:dump && gzip -9f db/data.sql"
        transfer :down, "#{application}/db/data.sql.gz", "db/data.sql.gz"
        system "gunzip -f db/data.sql.gz && bundle exec rake db:load"
      end

      desc "sync the static assets"
      task "assets" do
        uri = URI.parse("ssh://#{roles[ENV['ROLES'].to_sym].first.to_s}")
        portopt = "-e'ssh -p#{uri.port}'" if uri.port

        [asset_paths].flatten.each do |path|
          dest_path = path.dup
          dest_path.sub! %r(/[^/]+$), '/'
          system "rsync #{portopt} --delete -avz #{uri.user}@#{uri.host}:#{application}/#{path} #{dest_path}"
        end
      end
    end
  end

  after 'data:pull', 'data:pull:assets'

  desc "push app to production"
  task :deploy, :roles => :production do
    system "git push github" if `git remote` =~ /\bgithub\b/
    run "cd #{application} && git pull origin master && bundle && bundle exec rake bootstrap:production"
  end

  desc "push app to staging"
  task :stage, :roles => :staging do
    branch = ENV.has_key?("BRANCH") ? ENV["BRANCH"] : "integration"
    run "cd #{application} && git fetch && git checkout -f origin/#{branch} && bundle && bundle exec rake bootstrap"
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
bard-0.17.1 lib/bard/capistrano.rb
bard-0.17.0 lib/bard/capistrano.rb
bard-0.16.1 lib/bard/capistrano.rb
bard-0.16.0 lib/bard/capistrano.rb
bard-0.15.5 lib/bard/capistrano.rb
bard-0.15.4 lib/bard/capistrano.rb