| name: Check TODOs and FIXMEs in Changed Files |
| |
| on: |
| pull_request: |
| branches: |
| - master |
| - 'dev/*' |
| - 'rel/*' |
| - "rc/*" |
| - 'force_ci/**' |
| paths-ignore: |
| - 'docs/**' |
| - 'site/**' |
| # allow manually run the action: |
| workflow_dispatch: |
| |
| jobs: |
| todo-check: |
| runs-on: ubuntu-latest |
| |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@v4 |
| |
| - name: Check for TODOs and FIXMEs in changed files |
| run: | |
| # Fetch the target branch |
| git fetch origin $GITHUB_BASE_REF |
| |
| git switch -c check_branch |
| |
| # Get the diff of the changes |
| echo Get the diff of the changes |
| DIFF=$(git diff origin/$GITHUB_BASE_REF check_branch -- . ':(exclude).github/workflows/todos-check.yml') |
| |
| if [ -z "$DIFF" ]; then |
| echo "No changes detected." |
| exit 0 |
| fi |
| |
| |
| # Check the diff for TODOs |
| |
| # Check the diff for TODOs |
| echo Check the diff for TODOs |
| TODOsCOUNT=$(echo "$DIFF" | grep -E '^\+.*(TODO|FIXME)' | wc -l) |
| if [ "$TODOsCOUNT" -eq 0 ]; then |
| echo "No TODOs or FIXMEs found in changed content."; |
| exit 0 |
| fi |
| |
| echo "TODO or FIXME found in the changes. Please resolve it before merging." |
| echo "$DIFF" | grep -E '^\+.*(TODO|FIXME)' | tee -a output.log |
| exit 1 |