Class: Appsignal::Capistrano

Inherits:
Object
  • Object
show all
Defined in:
lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb

Class Method Summary collapse

Class Method Details

.tasks(config) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb', line 3

def self.tasks(config)
  config.load do
    after 'deploy', 'appsignal:deploy'
    after 'deploy:migrations', 'appsignal:deploy'

    namespace :appsignal do
      task :deploy do
        env = fetch(:rails_env, fetch(:rack_env, 'production'))
        user = ENV['USER'] || ENV['USERNAME']
        revision = fetch(:appsignal_revision, fetch(:current_revision))

        appsignal_config = Appsignal::Config.new(
          ENV['PWD'],
          env,
          fetch(:appsignal_config, {}),
          Logger.new(StringIO.new)
        )

        if appsignal_config && appsignal_config.active?
          marker_data = {
            :revision => revision,
            :user => user
          }

          marker = Marker.new(marker_data, appsignal_config)
          if config.dry_run
            puts 'Dry run: AppSignal deploy marker not actually sent.'
          else
            marker.transmit
          end
        else
          puts 'Not notifying of deploy, config is not active'
        end
      end
    end
  end
end