Sha256: 46069a9f2de03c7371026600587c6c1e603f606c4f2ab57b6a4c940ad5b38906

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

namespace :slack do
  namespace :deploy do
    task :starting do
      run_locally do
        text = "#{ENV['USER'] || ENV['USERNAME']} has started deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'unknown stage'}."
        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

    task :finished do
      run_locally do
        text = "#{ENV['USER'] || ENV['USERNAME']} has finished deploying branch #{fetch :branch} of #{fetch :application} to #{fetch :stage, 'unknown stage'}."
        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

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_icon_url,     ->{ "http://gravatar.com/avatar/885e1c523b7975c4003de162d8ee8fee?r=g&s=40" }
    set :slack_channel,      ->{ "#general" }
    set :slack_username,     ->{ "Slackistrano" }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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