Sha256: 9cb59e798478d3eb1ae1b2a90a63bfc0a8c8892a9a8561863c2887ee5126be9c

Contents?: true

Size: 1.56 KB

Versions: 6

Compression:

Stored size: 1.56 KB

Contents

require 'net/http'
require 'rubygems'
require 'json'

namespace :rollbar do

  desc 'Send the deployment notification to Rollbar.'
  task :deploy do
    on primary fetch(:rollbar_role) do
      warn("You need to upgrade capistrano to '>= 3.1' version in order to correctly report deploys to Rollbar. (On 3.0, the reported revision will be incorrect.)") if Capistrano::VERSION =~ /^3\.0/

      uri    = URI.parse 'https://api.rollbar.com/api/1/deploy/'
      params = {
        :local_username => fetch(:rollbar_user),
        :access_token   => fetch(:rollbar_token),
        :environment    => fetch(:rollbar_env),
        :revision       => fetch(:rollbar_revision),
        :comment        => fetch(:rollbar_comment),
      }

      debug "Building Rollbar POST to #{uri} with #{params.inspect}"

      request      = Net::HTTP::Post.new(uri.request_uri)
      request.body = ::JSON.dump(params)

      Net::HTTP.start(uri.host, uri.port, :ENV, :use_ssl => true) do |http|
        http.request(request)
      end

      info 'Rollbar notification complete.'
    end
  end
end

namespace :deploy do
  after 'deploy:finished', 'rollbar:deploy'
end

namespace :load do
  task :defaults do
    set :rollbar_user,      Proc.new { fetch :local_user, ENV['USER'] || ENV['USERNAME'] }
    set :rollbar_env,       Proc.new { fetch :rails_env, 'production' }
    set :rollbar_token,     Proc.new { abort "Please specify the Rollbar access token, set :rollbar_token, 'your token'" }
    set :rollbar_role,      Proc.new { :app }
    set :rollbar_revision,  Proc.new { fetch :current_revision }
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rollbar-2.18.2 lib/rollbar/tasks/rollbar.cap
rollbar-2.18.0 lib/rollbar/tasks/rollbar.cap
rollbar-2.17.0 lib/rollbar/tasks/rollbar.cap
rollbar-2.16.4 lib/rollbar/tasks/rollbar.cap
rollbar-2.16.3 lib/rollbar/tasks/rollbar.cap
rollbar-2.16.2 lib/rollbar/tasks/rollbar.cap