| name: Coding Guidelines |
| |
| on: pull_request |
| |
| permissions: |
| contents: read |
| |
| jobs: |
| compliance_job: |
| runs-on: ubuntu-24.04 |
| name: Run coding guidelines checks on patch series (PR) |
| steps: |
| - name: Checkout the code |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 |
| with: |
| ref: ${{ github.event.pull_request.head.sha }} |
| fetch-depth: 0 |
| |
| - name: Set up Python |
| uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 |
| with: |
| python-version: 3.12 |
| cache: pip |
| cache-dependency-path: scripts/requirements-actions.txt |
| |
| - name: Install Python packages |
| run: | |
| pip install -r scripts/requirements-actions.txt --require-hashes |
| |
| - name: Install Packages |
| run: | |
| sudo apt-get update |
| sudo apt-get install coccinelle |
| |
| - name: Run Coding Guidelines Checks |
| continue-on-error: true |
| id: coding_guidelines |
| env: |
| BASE_REF: ${{ github.base_ref }} |
| run: | |
| export ZEPHYR_BASE=$PWD |
| git config --global user.email "actions@zephyrproject.org" |
| git config --global user.name "Github Actions" |
| git remote -v |
| rm -fr ".git/rebase-apply" |
| rm -fr ".git/rebase-merge" |
| git rebase origin/${BASE_REF} |
| git clean -f -d |
| source zephyr-env.sh |
| # debug |
| ls -la |
| git log --pretty=oneline | head -n 10 |
| ./scripts/ci/guideline_check.py --output output.txt -c origin/${BASE_REF}.. |
| |
| - name: check-warns |
| run: | |
| if [[ -s "output.txt" ]]; then |
| errors=$(cat output.txt) |
| errors="${errors//'%'/'%25'}" |
| errors="${errors//$'\n'/'%0A'}" |
| errors="${errors//$'\r'/'%0D'}" |
| echo "::error file=output.txt::$errors" |
| exit 1; |
| fi |