Verify that certain files or directories did or did not change during the workflow execution.
- Boolean output indicating the presence of uncommited changes.
- List all files that changed during the workflow execution.
- Restrict change detection to a subset of files.
- Regex pattern matching on a subset of files.
NOTE:
⚠️
This action only detects files that have pending uncommited changes generated during the workflow execution, for running a specific step when a file changes relative to the default branch or previous commit
Detects files that were
Added
,Copied
,Modified
,Unmerged
,Unknown
, had theirType changed
,Unstaged
andRenamed
.
...
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/[email protected]
id: verify-changed-files
with:
files: |
new.txt
test_directory
.(py|jpeg)$
\.sql$
^(mynewfile|custom)
- name: Run step only when 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/[email protected]
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."
Input | type | required | default | description |
---|---|---|---|---|
token | string |
true |
${{ github.token }} |
GITHUB_TOKEN or a repo scoped Personal Access Token |
files | string[] OR string |
true |
Check for uncommited changes using only these list of file(s) |
Input | type | example | description |
---|---|---|---|
files_changed | string |
true OR false |
Indicates that there are outstanding changes |
changed_files | string |
example.txt ... |
List of file(s)/directory names that changed during the workflow execution |
- Free software: MIT license
If you feel generous and want to show some extra appreciation:
Support me with a ⭐