From 24e54d7cabdf9d7c4fd91976ee5167c12b1850f1 Mon Sep 17 00:00:00 2001 From: Josh Holtz Date: Mon, 12 Apr 2021 11:34:58 -0500 Subject: [PATCH] [fastlane][action] fix git_branch when not in a git repo (#18525) --- fastlane/lib/fastlane/actions/git_branch.rb | 2 +- fastlane/lib/fastlane/helper/git_helper.rb | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/fastlane/lib/fastlane/actions/git_branch.rb b/fastlane/lib/fastlane/actions/git_branch.rb index f67b573be0e..1bd8b7025b0 100644 --- a/fastlane/lib/fastlane/actions/git_branch.rb +++ b/fastlane/lib/fastlane/actions/git_branch.rb @@ -2,7 +2,7 @@ module Fastlane module Actions class GitBranchAction < Action def self.run(params) - branch = Actions.git_branch + branch = Actions.git_branch || "" return "" if branch == "HEAD" # Backwards compatibility with the original (and documented) implementation branch end diff --git a/fastlane/lib/fastlane/helper/git_helper.rb b/fastlane/lib/fastlane/helper/git_helper.rb index 5b576148d7a..a956cc8a47e 100644 --- a/fastlane/lib/fastlane/helper/git_helper.rb +++ b/fastlane/lib/fastlane/helper/git_helper.rb @@ -123,7 +123,15 @@ def self.last_git_commit_hash(short) # Can be replaced using the environment variable `GIT_BRANCH` def self.git_branch env_name = SharedValues::GIT_BRANCH_ENV_VARS.find { |env_var| FastlaneCore::Env.truthy?(env_var) } - ENV.fetch(env_name.to_s) { Actions.sh("git rev-parse --abbrev-ref HEAD", log: false).chomp } + ENV.fetch(env_name.to_s) do + # Rescues if not a git repo or no commits in a git repo + begin + Actions.sh("git rev-parse --abbrev-ref HEAD", log: false).chomp + rescue => err + UI.verbose("Error getting git branch: #{err.message}") + nil + end + end end private_class_method