diff --git a/.github/workflows/manual-test.yml b/.github/workflows/manual-test.yml new file mode 100644 index 00000000..dc45d1cf --- /dev/null +++ b/.github/workflows/manual-test.yml @@ -0,0 +1,29 @@ +name: Manual Test + +on: + workflow_dispatch: + +jobs: + test: + name: Test changed-files + runs-on: ${{ matrix.platform }} + strategy: + fail-fast: false + max-parallel: 4 + matrix: + platform: [ubuntu-latest, windows-latest, macos-latest, macos-11, ubuntu-18.04, windows-2022] + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + fetch-depth: 0 + + - name: Run changed-files with defaults + id: changed-files + uses: ./ + + - name: Show output + run: | + echo '${{ toJSON(steps.changed-files.outputs) }}' diff --git a/entrypoint.sh b/entrypoint.sh index defd82b8..184e0a21 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -46,7 +46,12 @@ function get_renames() { ) fi done < <(git submodule | awk '{print $2}') - git log --name-status --ignore-submodules=all "$base".."$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' + + if [ -n "$(git log --name-status --ignore-submodules=all "$base".."$sha")" ]; then + git log --name-status --ignore-submodules=all "$base".."$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' + else + git diff --diff-filter=R --name-status --ignore-submodules=all "$base" "$sha" | grep -E "^R" | awk -F '\t' -v d="$INPUT_OLD_NEW_SEPARATOR" '{print $2d$3}' + fi } echo "::group::changed-files" diff --git a/test/test rename 1.txt b/test/test rename-1.txt similarity index 100% rename from test/test rename 1.txt rename to test/test rename-1.txt