diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1512419..78b3511 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -55,3 +55,21 @@ jobs: run: | echo "No Changes found: (Not expected)" exit 1 + - name: Generate and unstaged file + run: | + echo "New changes" > unstaged.txt + - name: Test unstaged file has changes + uses: ./ + id: changed_unstaged_files_expected + with: + files: | + unstaged.txt + - name: Display unstaged changed files + if: steps.changed_unstaged_files_expected.outputs.files_changed == 'true' + run: | + echo "Changed files: ${{ steps.changed_unstaged_files_expected.outputs.changed_files }}" + - name: Verify Changes to unstaged.txt + if: steps.changed_unstaged_files_expected.outputs.files_changed != 'true' + run: | + echo "No Changes found: (Not expected)" + exit 1 diff --git a/entrypoint.sh b/entrypoint.sh index 3ec5ba8..b614c51 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -8,6 +8,12 @@ for path in ${INPUT_FILES} do echo "Checking for file changes: \"${path}\"..." MODIFIED_FILE=$(git diff --diff-filter=ACMUXTR --name-only | grep -E "(${path})" || true) + + if [[ -z $MODIFIED_FILE ]]; then + # Find unstaged changes + MODIFIED_FILE=$(git status --porcelain | awk '{ print $2 }' | grep -E "(${path})" || true) + fi + if [[ -n ${MODIFIED_FILE} ]]; then echo "Found uncommited changes at: ${path}" CHANGED_FILES+=("${path}")