Class: CapistranoDeploybot::Capistrano

Inherits:
Object
  • Object
show all
Defined in:
lib/capistrano-deploybot/capistrano.rb

Constant Summary collapse

DEFAULT_OPTIONS =
{
  username: :autodeploy,
  environments: %w(staging)
}

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ Capistrano

Returns a new instance of Capistrano.



13
14
15
16
# File 'lib/capistrano-deploybot/capistrano.rb', line 13

def initialize(env)
  @env = env
  @opts = DEFAULT_OPTIONS.merge(fetch(:deploybot, {}))
end

Instance Method Details

#runObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/capistrano-deploybot/capistrano.rb', line 18

def run
  current_revision = fetch(:current_revision)
  previous_revision = fetch(:previous_revision)
  rails_env = fetch(:rails_env)

  return if !@opts[:environments].include?(rails_env.to_s) || current_revision == previous_revision

  payload = {
    username: @opts[:username],
    text: payload_text(current_revision, previous_revision, rails_env)
  }

  @opts[:webhooks].each do |webhook|
    post_to_webhook(payload.merge(webhook: webhook))
  end
end