Verify that certain files or directories did or did not change during the workflow execution.
Warning
This action only detects files that have pending uncommited changes generated during the workflow execution, for running a specific step when a file changes in a pull request or based on a pushed commit
- Fast execution (0-2 seconds on average).
- Easy to debug.
- Scales to large repositories.
- Supports all platforms (Linux, MacOS, Windows).
- GitHub-hosted runners support
- GitHub Enterprise Server support.
- self-hosted runners support.
- Boolean output for detecting uncommited changes.
- List all files that changed during the workflow execution.
- Detect changes to track and untracked files.
- Restrict change detection to a subset of files:
- Using Glob pattern matching.
...
steps:
- uses: actions/checkout@v2
- name: Change text file
run: |
echo "Modified" > new.txt
- name: Change file in directory
run: |
echo "Changed" > test_directory/new.txt
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v16
id: verify-changed-files
with:
files: |
*.txt
test_directory
action.yml
**/*.py
**/*.jpeg
!*.sql
- name: Run step only when any of the above files change.
if: steps.verify-changed-files.outputs.files_changed == 'true'
run: |
echo "Changed files: ${{ steps.verify-changed-files.outputs.changed_files }}"
# Outputs: "Changed files: new.txt test_directory/new.txt"
Using the contains
function.
...
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v16
id: verify-changed-files
with:
files: |
new.txt
test_directory
- name: Perform action when test_directory changes
if: contains(steps.verify-changed-files.outputs.changed_files, 'test_directory')
run: |
echo "test_directory has changed."
...
- name: Verify Changed files
uses: tj-actions/verify-changed-files@v16
id: verify-changed-files
- name: List all changed files tracked and untracked files
run: |
echo "Changed files: ${{ steps.verify-changed-files.outputs.changed_files }}"
If you feel generous and want to show some extra appreciation:
Support this project with a ⭐
INPUT | TYPE | REQUIRED | DEFAULT | DESCRIPTION |
---|---|---|---|---|
files | string | false | File/Directory names to check for uncommited changes. |
|
files-separator | string | false | "\n" |
Separator used to split the files input |
match-gitignore-files | string | true | "false" |
Indicates whether to match files in .gitignore |
separator | string | false | " " |
Output string separator. |
OUTPUT | TYPE | DESCRIPTION |
---|---|---|
changed_files | string | List of changed files |
files_changed | string | Boolean indicating that files have changed. |
- Free software: MIT license
Warning
- Using characters like
\n
,%
,.
and\r
as output string separators would be URL encoded
Report bugs at https://github.com/tj-actions/verify-changed-files/issues.
If you are reporting a bug, please include:
- Your operating system name and version.
- Any details about your workflow that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
Thanks goes to these wonderful people (emoji key):
Max Kahnt 📖 |
William Killerud 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!