Sha256: 2fba61aea39d94c5dbd743bc3af288c61caea1574a7b5a9dc0f8036cf25db778

Contents?: true

Size: 1.67 KB

Versions: 80

Compression:

Stored size: 1.67 KB

Contents

# frozen_string_literal: true

module Appsignal
  # @todo Move to sub-namespace
  # @api private
  class Capistrano
    def self.tasks(config)
      config.load do # rubocop:disable Metrics/BlockLength
        after "deploy", "appsignal:deploy"
        after "deploy:migrations", "appsignal:deploy"

        namespace :appsignal do
          task :deploy do
            env = fetch(:appsignal_env,
              fetch(:stage, fetch(:rails_env, fetch(:rack_env, "production"))))
            user = fetch(:appsignal_user, ENV["USER"] || ENV.fetch("USERNAME", nil))
            revision = fetch(:appsignal_revision, fetch(:current_revision))

            appsignal_config = Appsignal::Config.new(
              ENV.fetch("PWD", nil),
              env,
              {},
              Appsignal::Utils::IntegrationLogger.new(StringIO.new)
            ).tap do |c|
              fetch(:appsignal_config, {}).each do |key, value|
                c[key] = value
              end
              c.validate
            end

            if 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 for environment: #{env}"
            end
          end
        end
      end
    end
  end
end

if ::Capistrano::Configuration.instance
  Appsignal::Capistrano.tasks(::Capistrano::Configuration.instance)
end

Version data entries

80 entries across 80 versions & 1 rubygems

Version Path
appsignal-3.10.0-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.10.0 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.9.3-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.9.3 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.9.2-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.9.2 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.9.1-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.9.1 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.9.0-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.9.0 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.8.1-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.8.1 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.8.0-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.8.0 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.7.6-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.7.6 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.7.2-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.7.2 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.7.1-java lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb
appsignal-3.7.1 lib/appsignal/integrations/capistrano/capistrano_2_tasks.rb