Add skip_fetch input option

This new option will allow users to skip the execution of `git fetch` if it has a negative impact in their workflows.

In a future PR I will probably remove the call to git-fetch interely. It was added in #108 in relation to a problem with slashes in branch names. That problem wasn't properly fixed though.
This commit is contained in:
Stefan Zweifel 2020-12-13 09:31:16 +01:00
parent fafea853e8
commit a9021d5359
3 changed files with 24 additions and 1 deletions

View File

@ -48,6 +48,10 @@ inputs:
description: Skip the check if the git repository is dirty and always try to create a commit.
required: false
default: false
skip_fetch:
description: Skip the call to git-fetch.
required: false
default: false
outputs:
changes_detected:

View File

@ -41,7 +41,12 @@ _switch_to_branch() {
echo "INPUT_BRANCH value: $INPUT_BRANCH";
# Fetch remote to make sure that repo can be switched to the right branch.
git fetch --depth=3;
if "$INPUT_SKIP_FETCH"; then
echo "::debug::git-fetch has not been executed";
else
git fetch --depth=3;
fi
# Switch to branch from current Workflow run
# shellcheck disable=SC2086

View File

@ -21,6 +21,7 @@ setup() {
export INPUT_TAGGING_MESSAGE=""
export INPUT_PUSH_OPTIONS=""
export INPUT_SKIP_DIRTY_CHECK=false
export INPUT_SKIP_FETCH=false
# Configure Git
if [[ -z $(git config user.name) ]]; then
@ -297,3 +298,16 @@ git_auto_commit() {
run git ls-remote --tags --refs
assert_output --partial refs/tags/v2.0.0
}
@test "If SKIP_FETCH is true git-fetch will not be called" {
touch "${FAKE_LOCAL_REPOSITORY}"/new-file-{1,2,3}.txt
INPUT_SKIP_FETCH=true
run git_auto_commit
assert_success
assert_line "::debug::git-fetch has not been executed"
}