@@ -21,20 +21,57 @@ jobs:
2121 with :
2222 fetch-depth : 0
2323
24+
25+ - name : Define file masks
26+ id : define-file-masks
27+ run : |
28+ echo "file_masks='README.md'" >> $GITHUB_ENV
29+
2430 - name : Get changed files
2531 id : changed-markdown-files
26- # Set outputs using the command.
32+ env :
33+ FILE_MASKS : ${{ steps.define-file-masks.outputs.file_masks }}
2734 run : |
28- git diff --name-only ${{ github.event.before }} ${{ github.event.after }}
29- git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -c 'README\.md$'
30- echo "changed_files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep 'README\.md$' | xargs)" >> $GITHUB_OUTPUT
35+ # Initialize variables
36+ changed_files=""
37+ deleted_files=""
38+ any_changes="false"
39+
40+ # Loop through each file mask and check for changes
41+ for mask in $FILE_MASKS; do
42+ # Get the list of changed files for the current mask
43+ current_changed_files=$(git diff --name-status ${{ github.event.before }} ${{ github.event.after }} | grep '^[AM]' | grep "${mask}" | awk '{print $2}')
44+ # Get the list of deleted files for the current mask
45+ current_deleted_files=$(git diff --name-status ${{ github.event.before }} ${{ github.event.after }} | grep '^D' | grep "${mask}" | awk '{print $2}')
46+ # Check if there are any changes for the current mask
47+ current_any_changes=$(git diff --name-status ${{ github.event.before }} ${{ github.event.after }} | grep "${mask}" | wc -l)
48+
49+ # Append the current changed files to the overall list
50+ if [ -n "$current_changed_files" ]; then
51+ changed_files="$changed_files $current_changed_files"
52+ fi
53+
54+ # Append the current deleted files to the overall list
55+ if [ -n "$current_deleted_files" ]; then
56+ deleted_files="$deleted_files $current_deleted_files"
57+ fi
58+
59+ # Set any_changes to true if there are any changes for the current mask
60+ if [ "$current_any_changes" -gt 0 ]; then
61+ any_changes="true"
62+ fi
63+ done
64+
65+ # Set the outputs
66+ echo "changed_files=${changed_files}" >> $GITHUB_OUTPUT
67+ echo "deleted_files=${deleted_files}" >> $GITHUB_OUTPUT
68+ echo "any_changes=${any_changes}" >> $GITHUB_OUTPUT
3169
3270 - name : List changed files
3371 run : |
34- for file in ${{ steps.changed-markdown-files.outputs.changed_files }}; do
35- echo "$file was changed"
36- done
37-
72+ for file in ${{ steps.changed-markdown-files.outputs.changed_files }}; do
73+ echo "$file was changed"
74+ done
3875
3976 - name : Install python3
4077 if : steps.changed-markdown-files.outputs.any_changed == 'true'
4885 - name : Process *.md changes
4986 if : steps.changed-markdown-files.outputs.any_changed == 'true'
5087 env :
51- CHANGED_FILES : ${{ steps.changed-markdown-files.outputs.all_changed_files }}
88+ CHANGED_FILES : ${{ steps.changed-markdown-files.outputs.changed_files }}
5289 DELETED_FILES : ${{ steps.changed-markdown-files.outputs.deleted_files }}
5390 run : |
5491 git config user.name "Chem O'Dun"
0 commit comments