Add skip_checkout option

This commit is contained in:
Chris Buckley 2022-01-10 00:10:05 +00:00
parent 8c3ed373fb
commit fc174e2406
4 changed files with 28 additions and 3 deletions

View File

@ -78,6 +78,9 @@ The following is an extended example with all possible options available for thi
# Optional. Skip internal call to `git fetch` # Optional. Skip internal call to `git fetch`
skip_fetch: true skip_fetch: true
# Optional. Skip internal call to `git checkout`
skip_checkout: true
# Optional. Prevents the shell from expanding filenames. # Optional. Prevents the shell from expanding filenames.
# Details: https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html # Details: https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html
disable_globbing: true disable_globbing: true

View File

@ -60,6 +60,10 @@ inputs:
description: Skip the call to git-fetch. description: Skip the call to git-fetch.
required: false required: false
default: false default: false
skip_checkout:
description: Skip the call to git-checkout.
required: false
default: false
disable_globbing: disable_globbing:
description: Stop the shell from expanding filenames (https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html) description: Stop the shell from expanding filenames (https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html)
default: false default: false

View File

@ -55,9 +55,13 @@ _switch_to_branch() {
git fetch --depth=1; git fetch --depth=1;
fi fi
# Switch to branch from current Workflow run if "$INPUT_SKIP_CHECKOUT"; then
# shellcheck disable=SC2086 echo "::debug::git-checkout has not been executed";
git checkout $INPUT_BRANCH; else
# Switch to branch from current Workflow run
# shellcheck disable=SC2086
git checkout $INPUT_BRANCH;
fi
} }
_add_files() { _add_files() {

View File

@ -24,6 +24,7 @@ setup() {
export INPUT_PUSH_OPTIONS="" export INPUT_PUSH_OPTIONS=""
export INPUT_SKIP_DIRTY_CHECK=false export INPUT_SKIP_DIRTY_CHECK=false
export INPUT_SKIP_FETCH=false export INPUT_SKIP_FETCH=false
export INPUT_SKIP_CHECKOUT=false
export INPUT_DISABLE_GLOBBING=false export INPUT_DISABLE_GLOBBING=false
# Configure Git # Configure Git
@ -381,6 +382,19 @@ git_auto_commit() {
assert_line "::debug::git-fetch has not been executed" assert_line "::debug::git-fetch has not been executed"
} }
@test "If SKIP_CHECKOUT is true git-checkout will not be called" {
touch "${FAKE_LOCAL_REPOSITORY}"/new-file-{1,2,3}.txt
INPUT_SKIP_CHECKOUT=true
run git_auto_commit
assert_success
assert_line "::debug::git-checkout has not been executed"
}
@test "It pushes generated commit and tag to remote and actually updates the commit shas" { @test "It pushes generated commit and tag to remote and actually updates the commit shas" {
INPUT_BRANCH="" INPUT_BRANCH=""
INPUT_TAGGING_MESSAGE="v2.0.0" INPUT_TAGGING_MESSAGE="v2.0.0"