Sha256: b6bd1457a065fc54699440bc57eaf2c2029dd59ffc90a63c26eabaec006d671f

Contents?: true

Size: 1.95 KB

Versions: 1

Compression:

Stored size: 1.95 KB

Contents

namespace :slack do
  namespace :deploy do

    task :starting do
      if fetch(:slack_run_starting)
        run_locally do
          text = "#{ENV['USER'] || ENV['USERNAME']} has started deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :rails_env, 'production'}."
          Slackistrano.post(
            team: fetch(:slack_team),
            token: fetch(:slack_token),
            payload: {
              channel: fetch(:slack_channel),
              username: fetch(:slack_username),
              icon_url: fetch(:slack_icon_url),
              text: text
            }
          )
        end
      end
    end

    task :finished do
      if fetch(:slack_run_finished)
        run_locally do
          text = "#{ENV['USER'] || ENV['USERNAME']} has finished deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :rails_env, 'production'}."
          Slackistrano.post(
            team: fetch(:slack_team),
            token: fetch(:slack_token),
            payload: {
              channel: fetch(:slack_channel),
              username: fetch(:slack_username),
              icon_url: fetch(:slack_icon_url),
              text: text
            }
          )
        end
      end
    end
  end
end

before 'deploy:starting', 'slack:deploy:starting'
after 'deploy:finished', 'slack:deploy:finished'

namespace :load do
  task :defaults do
    set :slack_team,         ->{ nil } # If URL is 'team.slack.com', value is 'team'. Required.
    set :slack_token,        ->{ nil } # Token from Incoming WebHooks. Required.
    set :slack_channel,      ->{ nil } # Channel to post to. Optional. Defaults to WebHook setting.
    set :slack_icon_url,     ->{ 'http://gravatar.com/avatar/885e1c523b7975c4003de162d8ee8fee?r=g&s=40' }
    set :slack_username,     ->{ 'Slackistrano' }
    set :slack_run_starting, ->{ true } # Set to false to disable starting message.
    set :slack_run_finished, ->{ true } # Set to false to disable finished message.
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
slackistrano-0.0.6 lib/slackistrano/tasks/slack.rake