match_changed_files.sh 616 B

1234567891011121314151617181920
  1. #!/bin/bash
  2. #
  3. # Usage: $0 PATTERN
  4. # If files in the last commit match PATTERN, exit 0. Else, exit 1
  5. #
  6. # Usage in github actions:
  7. # <job_name>:
  8. # runs-on: ubuntu-latest
  9. # steps:
  10. # - uses: actions/checkout@v3
  11. # with: { fetch-depth: 2 } # Important for git diff to work
  12. # - run: if ./match_changed_files.sh '.*' ; then echo RUN=1 >> $GITHUB_ENV ; fi
  13. # - if: ${{ env.RUN == 1 }}
  14. # run: echo yohoo!
  15. CHANGED_FILES=`git --no-pager diff --name-only HEAD~1 HEAD | xargs`
  16. echo "Pattern: [$1], files: $CHANGED_FILES"
  17. for FILE in $CHANGED_FILES; do [[ "$FILE" =~ $1 ]] && exit 0; done
  18. exit 1