Sha256: 0d54303a4bf8f5564f770714fb105773ae2e4688537d9a3ae5f93cd485c214ad

Contents?: true

Size: 1022 Bytes

Versions: 3

Compression:

Stored size: 1022 Bytes

Contents

module Hatchet
  # used for deploying a test app to heroku via git
  class GitApp < App
    HATCHET_BUILDPACK_BASE   = (ENV['HATCHET_BUILDPACK_BASE'] || "https://github.com/heroku/heroku-buildpack-ruby.git")
    HATCHET_BUILDPACK_BRANCH = -> { ENV['HATCHET_BUILDPACK_BRANCH'] || Hatchet.git_branch }
    BUILDPACK_URL = "https://github.com/heroku/heroku-buildpack-ruby.git"

    def initialize(directory, options = {})
      @buildpack = options[:buildpack] || options[:buildpack_url] || [HATCHET_BUILDPACK_BASE, HATCHET_BUILDPACK_BRANCH.call].join("#")
      super
    end

    def setup!
      super
      heroku.put_config_vars(name, 'BUILDPACK_URL' => @buildpack)
      self
    end

    def git_repo
      "git@heroku.com:#{name}.git"
    end

    def push_without_retry!
      output = `git push #{git_repo} master 2>&1`
      if !$?.success?
        raise FailedDeploy.new(self, "Buildpack: #{@buildpack.inspect}\nRepo: #{git_repo}\n#{output}") unless @allow_failure
      end
      return output
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
heroku_hatchet-1.4.1 lib/hatchet/git_app.rb
heroku_hatchet-1.4.0 lib/hatchet/git_app.rb
heroku_hatchet-1.3.7 lib/hatchet/git_app.rb