Sha256: 1281aa313f675fea4c836688b5942f69883c3bd05084ddab04514dfc2d01bf84

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

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

namespace :rollbar do

  desc 'Send the deployment notification to Rollbar.'
  task :deploy do
    on roles fetch(:rollbar_role) do
      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(:current_revision) }

      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, :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,  fetch(:rollbar_user,  Proc.new { ENV['USER'] || ENV['USERNAME'] } )
    set :rollbar_env,   fetch(:rollbar_env,   Proc.new { fetch :rails_env, 'production' } )
    set :rollbar_token, fetch(:rollbar_token, Proc.new { abort "Please specify the Rollbar access token, set :rollbar_token, 'your token'" } )
    set :rollbar_role,  fetch(:rollbar_role,  Proc.new { :app } )
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rollbar-1.4.3 lib/rollbar/tasks/rollbar.cap