lib/bugsnag/capistrano.rb in bugsnag-1.8.2 vs lib/bugsnag/capistrano.rb in bugsnag-1.8.3
- old
+ new
@@ -1,48 +1,8 @@
require "httparty"
require "multi_json"
-module Bugsnag
- module Capistrano
- ALLOWED_ENV_SETTINGS = %w{BUGSNAG_RELEASE_STAGE BUGSNAG_REPOSITORY BUGSNAG_REVISION BUGSNAG_BRANCH BUGSNAG_API_KEY BUGSNAG_APP_VERSION}
-
- def self.load_into(configuration)
- configuration.load do
- after "deploy", "bugsnag:deploy"
- after "deploy:migrations", "bugsnag:deploy"
-
- namespace :bugsnag do
- desc "Notify Bugsnag that new production code has been deployed"
- task :deploy, :except => { :no_release => true }, :on_error => :continue do
- # Build the rake command
- rake = fetch(:rake, "rake")
- rails_env = fetch(:rails_env, "production")
- bugsnag_env = fetch(:bugsnag_env, rails_env)
- rake_command = "cd '#{current_path}' && RAILS_ENV=#{rails_env} #{rake} bugsnag:deploy"
-
- # Build the new environment to pass through to rake
- new_env = {
- "BUGSNAG_RELEASE_STAGE" => bugsnag_env,
- "BUGSNAG_REVISION" => fetch(:current_revision, nil),
- "BUGSNAG_REPOSITORY" => fetch(:repository, nil),
- "BUGSNAG_BRANCH" => fetch(:branch, nil)
- }.reject { |_, v| v.nil? }
-
- # Pass through any existing env variables
- ALLOWED_ENV_SETTINGS.each { |opt| new_env[opt] = ENV[opt] if ENV[opt] }
-
- # Append the env to the rake command
- rake_command << " #{new_env.map{|k,v| "#{k}=#{v}"}.join(" ")}"
-
- # Run the rake command (only on one server)
- run(rake_command, :once => true)
-
- logger.info "Bugsnag deploy notification complete."
- end
- end
- end
- end
- end
+if defined?(Capistrano::VERSION) && Gem::Version.new(Capistrano::VERSION).release >= Gem::Version.new('3.0.0')
+ load File.expand_path('../tasks/bugsnag.cap', __FILE__)
+else
+ require_relative 'capistrano2'
end
-
-Bugsnag::Capistrano.load_into(Capistrano::Configuration.instance) if Capistrano::Configuration.instance
-