58 lines
1.8 KiB
YAML
58 lines
1.8 KiB
YAML
---
|
|
name: pre-commit
|
|
on:
|
|
pull_request:
|
|
push:
|
|
jobs:
|
|
pre-commit:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
LOG_TO_CS: .github/logToCs.py
|
|
RAW_LOG: pre-commit.log
|
|
CS_XML: pre-commit.xml
|
|
steps:
|
|
- run: sudo apt-get update && sudo apt-get install cppcheck
|
|
if: false
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
cache: pip
|
|
python-version: "3.11"
|
|
- run: python -m pip install pre-commit regex
|
|
- uses: actions/cache/restore@v4
|
|
with:
|
|
path: ~/.cache/pre-commit/
|
|
key: pre-commit-4|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml')
|
|
}}
|
|
- name: Run pre-commit hooks
|
|
run: |
|
|
set -o pipefail
|
|
pre-commit gc
|
|
pre-commit run --show-diff-on-failure --color=always --all-files | tee ${RAW_LOG}
|
|
- name: Convert Raw Log to CheckStyle format
|
|
if: ${{ failure() }}
|
|
run: |
|
|
python ${LOG_TO_CS} ${RAW_LOG} ${CS_XML}
|
|
- name: Annotate Source Code with Messages
|
|
uses: staabm/annotate-pull-request-from-checkstyle-action@v1
|
|
if: ${{ failure() }}
|
|
with:
|
|
files: ${{ env.CS_XML }}
|
|
notices-as-warnings: true # optional
|
|
prepend-filename: true # optional
|
|
- uses: actions/cache/save@v4
|
|
if: ${{ always() }}
|
|
with:
|
|
path: ~/.cache/pre-commit/
|
|
key: pre-commit-4|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml')
|
|
}}
|
|
- name: Provide log as artifact
|
|
uses: actions/upload-artifact@v4
|
|
if: ${{ always() }}
|
|
with:
|
|
name: precommit-logs
|
|
path: |
|
|
${{ env.RAW_LOG }}
|
|
${{ env.CS_XML }}
|
|
retention-days: 2
|