Sha256: b35d9dbef54604e9bf838333b74c09a2e944a7fd5fb2216953d8c865067ea2fc

Contents?: true

Size: 858 Bytes

Versions: 11

Compression:

Stored size: 858 Bytes

Contents

class SiblingDeployer
  extend HerokuResqueAutoscaler if Rails.env.production?
  @queue = :deployer
  attr_reader :app, :retries

  def self.perform(app_id)
    self.new(app_id).perform
  end

  def initialize(app_id)
    @app = Sibling::Deploy.find(app_id)
    @retries = 0
  end

  def perform
    Rails.logger.info "Starting deploying sibling..."
    @app.deploy
    Rails.logger.info "Succeeded deploying sibling."
  rescue GithubHerokuDeployer::CommandException,
         Heroku::API::Errors::ErrorWithResponse => e
    if should_retry?
      Rails.logger.info "Retrying deploying sibling..."
      increment_retries
      retry
    else
      raise e
    end
  rescue StandardError => e
    Rails.logger.info "Failed deploying sibling."
    raise e
  end

  def should_retry?
    @retries < 3
  end

  def increment_retries
    @retries += 1
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
g5_sibling_deployer_engine-0.7.0 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.6.3 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.6.2 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.6.1 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.5.0 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.4.2 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.4.1 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.4.0 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.3.3 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.3.2 app/workers/sibling_deployer.rb
g5_sibling_deployer_engine-0.2.6 app/workers/sibling_deployer.rb