After rebasing the PR on main, the local copy of the repository may still contain untracked directories and files (for example, the commits from the pull request are "git mv"ing files out of directories that are then left empty). Add a git clean so that we run CI in conditions that are as close as possible to a fresh clone. Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
61 lines
1.6 KiB
YAML
61 lines
1.6 KiB
YAML
name: Coding Guidelines
|
|
|
|
on: pull_request
|
|
|
|
jobs:
|
|
compliance_job:
|
|
runs-on: ubuntu-22.04
|
|
name: Run coding guidelines checks on patch series (PR)
|
|
steps:
|
|
- name: Checkout the code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
fetch-depth: 0
|
|
|
|
- name: cache-pip
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cache/pip
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('.github/workflows/coding_guidelines.yml') }}
|
|
|
|
- name: Install python dependencies
|
|
run: |
|
|
pip3 install unidiff
|
|
pip3 install wheel
|
|
pip3 install sh
|
|
|
|
- name: Install Packages
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install coccinelle
|
|
|
|
- name: Run Coding Guildeines 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
|
|
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
|