Skip to content

feat: add support for running action within a subdirectory #1050

feat: add support for running action within a subdirectory

feat: add support for running action within a subdirectory #1050

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
- '**'
jobs:
shellcheck:
name: Run shellcheck
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: shellcheck
uses: reviewdog/action-shellcheck@v1.19
test:
name: Test verify-changed-files
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, windows-latest, macos-latest, macos-11, windows-2022]
steps:
- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: Test files has no changes
uses: ./
id: changed_files_not_expected
with:
files: |
test/*.txt
test/*.sql
test/**/*.txt
test/**/*.sql
- name: Display changed files
if: steps.changed_files_not_expected.outputs.files_changed == 'true'
run: |
echo "Changed files (Not expected): ${{ steps.changed_files_not_expected.outputs.changed_files }}"
exit 1
- name: Test dont fail if not changed
uses: ./
id: changed_files_not_expected_fail
with:
fail-if-changed: true
files: |
test/*.txt
test/*.sql
test/**/*.txt
test/**/*.sql
- name: Make changes
run: |
printf '%s\n' "323442" "424" >> test/new.txt
printf '%s\n' "323442" "424" >> test/new1.txt
printf '%s\n' "323442" "424" >> test/new2.txt
printf '%s\n' "323442" "424" >> "test/\$(whoami).txt"
shell: bash
- name: Test test/new*.txt file has changes
uses: ./
id: changed_files_expected
with:
separator: '\n'
path: test
files: |
*.{txt,sql}
**/*.{txt,sql}
- name: Display changed files
if: steps.changed_files_expected.outputs.files_changed == 'true'
run: |
echo "Changed files: ${{ steps.changed_files_expected.outputs.changed_files }}"
- name: Verify Changes to test/new.txt
if: steps.changed_files_expected.outputs.files_changed != 'true'
run: |
echo "No Changes found: (Not expected)"
exit 1
- name: Test fail if changed
uses: ./
id: changed_files_expected_fail
continue-on-error: true
with:
fail-if-changed: true
files: |
test/*.txt
test/*.sql
test/**/*.txt
test/**/*.sql
- name: Generate an 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
- name: Test unstaged file changes are ignored
uses: ./
id: changed_unstaged_files_not_expected
with:
files: |
!test/new.txt
!test/new1.txt
!test/new2.txt
!test/$(whoami).txt
!unstaged.txt
- name: Verify Changes to unstaged.txt are ignored
if: steps.changed_unstaged_files_not_expected.outputs.files_changed != 'false'
run: |
echo "Changes found: (Not expected)"
exit 1
- name: Test unstaged file has changes
uses: ./
id: changed_unstaged2_files_expected
with:
files: |
!test/new.txt
!test/new1.txt
!test/new2.txt
!test/$(whoami).txt
unstaged.txt
- name: Verify Changes to unstaged.txt are ignored
if: steps.changed_unstaged2_files_expected.outputs.files_changed != 'true'
run: |
echo "No Changes found: (Not expected)"
exit 1
- name: Delete test/new.txt without staging
run: |
rm test/new.txt
- name: Test deletion of test/new.txt
uses: ./
id: deleted_file_test
- name: Show output
run: |
echo "Changed files: ${{ steps.deleted_file_test.outputs.changed_files }}"
- name: Display deleted file test result
if: "contains(steps.deleted_file_test.outputs.changed_files, 'test/new.txt')"
run: |
echo "Deletion detected: ${{ steps.deleted_file_test.outputs.changed_files }}"
- name: Verify Deletion of test/new.txt
if: "!contains(steps.deleted_file_test.outputs.changed_files, 'test/new.txt')"
run: |
echo "No Deletion detected: (Not expected)"
exit 1