Sha256: aaece79c72b6f07105713b7bfce0589ed26ce20aacab9a345956e770a6feed9c
Contents?: true
Size: 1.91 KB
Versions: 1
Compression:
Stored size: 1.91 KB
Contents
require 'capistrano' require 'capistrano/version' module CapistranoScale class CapistranoIntegration def self.load_into(capistrano_config) capistrano_config.load do namespace :scale_copy do desc "Internal hook that updates the aws_install.sh script to latest if the deploy completed" task :store_aws_install_script_on_success do install_cmd_path = fetch(:s3_install_cmd_path) if install_cmd_path aws_credentials = { :aws_access_key_id => capistrano_config[:aws_access_key_id], :aws_secret_access_key => capistrano_config[:aws_secret_access_key] } aws_connection = Fog::Storage::AWS.new(aws_credentials) aws_directory = aws_connection.directories.create( :key => capistrano_config[:aws_releases_bucket], :public => false ) logger.debug "Uploading #{install_cmd_path} initialization script to S3" key = "#{rails_env}/#{application}/aws_install.sh" existing = aws_directory.files.get(key) existing.destroy if existing file = aws_directory.files.new( :key => key, :body => File.open(install_cmd_path), :acl => 'public-read', :encryption => 'AES256' ) begin file.save logger.debug "AWS Install script uploaded in #{key}" rescue => e raise(Capistrano::Error, "S3 File upload failed: #{e.class.to_s}:#{e.message}") end end end end after 'deploy', 'scale_copy:store_aws_install_script_on_success' end end end end if Capistrano::Configuration.instance CapistranoScale::CapistranoIntegration.load_into(Capistrano::Configuration.instance) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
capistrano-scale-0.0.3 | lib/capistrano-scale/capistrano_integration.rb |