feat: add support for excluding symlinks and fix bug with commit not found (#2770)

This commit is contained in:
Tonye Jack
2026-01-19 23:51:22 -07:00
committed by GitHub
parent 2f2f6cf099
commit 8c4da285a3
15 changed files with 802 additions and 22 deletions

View File

@@ -275,6 +275,113 @@ jobs:
shell:
bash
test-skip-same-base-and-commit-sha:
name: Test changed-files skip same base and commit sha
runs-on: ubuntu-latest
needs: build
if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Download build assets
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
- name: Get head SHA
id: head-sha
run: |
echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
shell:
bash
- name: Run changed-files with same base and commit sha
id: changed-files
uses: ./
with:
base_sha: ${{ steps.head-sha.outputs.sha }}
sha: ${{ steps.head-sha.outputs.sha }}
skip_same_sha: true
- name: Verify empty outputs
if: steps.changed-files.outputs.all_changed_files_count != '0' || steps.changed-files.outputs.any_changed != 'false'
run: |
echo "Expected empty outputs; got count=${{ steps.changed-files.outputs.all_changed_files_count }} any_changed=${{ steps.changed-files.outputs.any_changed }}"
exit 1
shell:
bash
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files.outputs) }}'
shell:
bash
test-exclude-symlinks:
name: Test changed-files exclude symlinks
runs-on: ubuntu-latest
needs: build
if: needs.build.outputs.files_changed != 'true'
permissions:
contents: read
steps:
- name: Checkout branch
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Download build assets
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
with:
name: build-assets
- name: Run changed-files without symlink exclusion
id: changed-files-symlink-included
uses: ./
with:
base_sha: 955f38aa4f30f1ec92d08049b26e6d736ffea013
sha: ddde96a55848a649c09322c7094b22ef4b4abe23
- name: Verify symlink is present
if: "!contains(steps.changed-files-symlink-included.outputs.added_files, 'test/symlink-to-target')"
run: |
echo "Expected symlink to be present in added_files; got ${{ steps.changed-files-symlink-included.outputs.added_files }}"
exit 1
shell:
bash
- name: Run changed-files excluding symlinks
id: changed-files-symlink-excluded
uses: ./
with:
base_sha: 955f38aa4f30f1ec92d08049b26e6d736ffea013
sha: ddde96a55848a649c09322c7094b22ef4b4abe23
exclude_symlinks: true
- name: Verify symlink is excluded
if: "contains(steps.changed-files-symlink-excluded.outputs.added_files, 'test/symlink-to-target') || contains(steps.changed-files-symlink-excluded.outputs.all_changed_files, 'test/symlink-to-target')"
run: |
echo "Expected symlink to be excluded; got added=${{ steps.changed-files-symlink-excluded.outputs.added_files }} all=${{ steps.changed-files-symlink-excluded.outputs.all_changed_files }}"
exit 1
shell:
bash
- name: Show output
run: |
echo '${{ toJSON(steps.changed-files-symlink-included.outputs) }}'
echo '${{ toJSON(steps.changed-files-symlink-excluded.outputs) }}'
shell:
bash
test-using-branch-names-for-base-sha-and-sha-inputs:
name: Test using branch names for base_sha and sha inputs
runs-on: ubuntu-latest