name: Clang-tidy Hash CI on: pull_request: paths: - ".clang-tidy" - "platformio.ini" - "requirements_dev.txt" - "sdkconfig.defaults" - ".clang-tidy.hash" - "script/clang_tidy_hash.py" - ".github/workflows/ci-clang-tidy-hash.yml" permissions: contents: read pull-requests: write jobs: verify-hash: name: Verify clang-tidy hash runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Set up Python uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: "3.11" - name: Verify hash run: | python script/clang_tidy_hash.py --verify - if: failure() name: Show hash details run: | python script/clang_tidy_hash.py echo "## Job Failed" | tee -a $GITHUB_STEP_SUMMARY echo "You have modified clang-tidy configuration but have not updated the hash." | tee -a $GITHUB_STEP_SUMMARY echo "Please run 'script/clang_tidy_hash.py --update' and commit the changes." | tee -a $GITHUB_STEP_SUMMARY - if: failure() name: Request changes uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | await github.rest.pulls.createReview({ pull_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, event: 'REQUEST_CHANGES', body: 'You have modified clang-tidy configuration but have not updated the hash.\nPlease run `script/clang_tidy_hash.py --update` and commit the changes.' }) - if: success() name: Dismiss review uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: | let reviews = await github.rest.pulls.listReviews({ pull_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo }); for (let review of reviews.data) { if (review.user.login === 'github-actions[bot]' && review.state === 'CHANGES_REQUESTED') { await github.rest.pulls.dismissReview({ pull_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, review_id: review.id, message: 'Clang-tidy hash now matches configuration.' }); } }