Sha256: 1f55ffdb558685266cffd693fc544638e38db033f80fa1517b65abd8a9053b9b

Contents?: true

Size: 1.56 KB

Versions: 11

Compression:

Stored size: 1.56 KB

Contents

require 'capistrano'
require 'instrumental_agent'

if Capistrano::Configuration.instance
  Capistrano::Configuration.instance.load do
    namespace :instrumental do
      namespace :util do
        desc "marker for beginning of deploy"
        task :deploy_start do
          set :instrumental_deploy_start, Time.now
        end

        desc "marker for end of deploy"
        task :deploy_end do
          set :instrumental_deploy_end, Time.now
        end
      end

      desc "send a notice to instrumental about the deploy"
      task :record_deploy_notice do
        start_at = exists?(:instrumental_deploy_start) ? instrumental_deploy_start : Time.now
        end_at = exists?(:instrumental_deploy_end) ? instrumental_deploy_end : start_at
        deploy_duration_in_seconds = end_at - start_at
        deployer = Etc.getlogin.chomp
        agent_options = { :synchronous => true }
        agent_options[:collector] = instrumental_host if exists?(:instrumental_host)
        agent = Instrumental::Agent.new(instrumental_key, agent_options)
        agent.notice("#{deployer} deployed #{current_revision}",
                     start_at,
                     deploy_duration_in_seconds)
        logger.info("Notified Instrumental of deployment")
      end
    end

    before "deploy", "instrumental:util:deploy_start"
    after  "deploy", "instrumental:util:deploy_end"
    before "deploy:migrations", "instrumental:util:deploy_start"
    after  "deploy:migrations", "instrumental:util:deploy_end"
    after  "instrumental:util:deploy_end", "instrumental:record_deploy_notice"
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
instrumental_agent-0.10.0 lib/instrumental/capistrano.rb
instrumental_agent-0.9.11 lib/instrumental/capistrano.rb
instrumental_agent-0.9.10 lib/instrumental/capistrano.rb
instrumental_agent-0.9.6 lib/instrumental/capistrano.rb
instrumental_agent-0.9.5 lib/instrumental/capistrano.rb
instrumental_agent-0.9.1 lib/instrumental/capistrano.rb
instrumental_agent-0.9.0 lib/instrumental/capistrano.rb
instrumental_agent-0.8.3 lib/instrumental/capistrano.rb
instrumental_agent-0.8.2 lib/instrumental/capistrano.rb
instrumental_agent-0.8.1 lib/instrumental/capistrano.rb
instrumental_agent-0.8.0 lib/instrumental/capistrano.rb