verify-changed-files
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
Features
- 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.
Usage
...
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"
contains
function.
Using the ...
- 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."
Get all unstaged (tracked/untracked) files
...
- 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
Inputs
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. |
Outputs
OUTPUT | TYPE | DESCRIPTION |
---|---|---|
changed_files | string | List of changed files |
files_changed | string | Boolean indicating that files have changed. |
- Free software: MIT license
Known Limitation
Warning:
- Using characters like
\n
,%
,.
and\r
as output string separators would be URL encoded
Report Bugs
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.
β¨
Contributors Thanks goes to these wonderful people (emoji key):
Max Kahnt |
William Killerud |
This project follows the all-contributors specification. Contributions of any kind welcome!