diff --git a/lib/hatchet/app.rb b/lib/hatchet/app.rb index 0846936..7148e8d 100644 --- a/lib/hatchet/app.rb +++ b/lib/hatchet/app.rb @@ -160,6 +160,7 @@ def update_stack(stack_name) def setup! return self if @app_is_setup puts "Hatchet setup: #{name.inspect} for #{repo_name.inspect}" + create_git_repo! unless is_git_repo? create_app set_labs! buildpack_list = @buildpacks.map { |pack| { buildpack: pack } } @@ -179,7 +180,6 @@ def before_deploy(&block) self end - def commit! local_cmd_exec!('git add .; git commit -m next') end @@ -327,12 +327,21 @@ def api_rate_limit true end + private def is_git_repo? + out = `git rev-parse --git-dir > /dev/null 2>&1` + $?.success? + end + private def local_cmd_exec!(cmd) out = `#{cmd}` raise "Command: #{cmd} failed: #{out}" unless $?.success? out end + private def create_git_repo! + local_cmd_exec!('git init; git add .; git commit -m "init"') + end + private def default_name "hatchet-t-#{SecureRandom.hex(10)}" end diff --git a/test/different-folder-for-checked-in-repos/default_ruby/Gemfile b/test/different-folder-for-checked-in-repos/default_ruby/Gemfile new file mode 100644 index 0000000..20b4d4a --- /dev/null +++ b/test/different-folder-for-checked-in-repos/default_ruby/Gemfile @@ -0,0 +1 @@ +source 'https://rubygems.org' diff --git a/test/different-folder-for-checked-in-repos/default_ruby/Gemfile.lock b/test/different-folder-for-checked-in-repos/default_ruby/Gemfile.lock new file mode 100644 index 0000000..61268f8 --- /dev/null +++ b/test/different-folder-for-checked-in-repos/default_ruby/Gemfile.lock @@ -0,0 +1,11 @@ +GEM + remote: https://rubygems.org/ + specs: + +PLATFORMS + ruby + +DEPENDENCIES + +BUNDLED WITH + 1.16.2 diff --git a/test/hatchet/local_repo_test.rb b/test/hatchet/local_repo_test.rb new file mode 100644 index 0000000..184c782 --- /dev/null +++ b/test/hatchet/local_repo_test.rb @@ -0,0 +1,14 @@ +require 'test_helper' + +class AppTest < Minitest::Test + def test_repos_checked_into_git + app = Hatchet::App.new("test/different-folder-for-checked-in-repos/default_ruby") + app.in_directory do + assert_equal false, Dir.exist?(".git") + app.setup! + assert_equal true, Dir.exist?(".git") + end + ensure + app.teardown! if app + end +end