mirror of
https://github.com/esphome/esphome.git
synced 2025-09-02 03:12:20 +01:00
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
76 lines
2.4 KiB
YAML
76 lines
2.4 KiB
YAML
name: Clang-tidy Hash CI
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- ".clang-tidy"
|
|
- "platformio.ini"
|
|
- "requirements_dev.txt"
|
|
- ".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@v5.0.0
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5.6.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@v7.0.1
|
|
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@v7.0.1
|
|
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.'
|
|
});
|
|
}
|
|
}
|