diff --git a/.github/workflows/coding_guidelines.yml b/.github/workflows/coding_guidelines.yml new file mode 100644 index 0000000000000000000000000000000000000000..27528b687265030290d995eab7c9c85314e836b9 --- /dev/null +++ b/.github/workflows/coding_guidelines.yml @@ -0,0 +1,59 @@ +name: Coding Guidelines + +on: pull_request + +jobs: + compliance_job: + runs-on: ubuntu-latest + name: Run coding guidelines checks on patch series (PR) + steps: + - name: Checkout the code + uses: actions/checkout@v2 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 + + - name: cache-pip + uses: actions/cache@v1 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-doc-pip + + - name: Install python dependencies + run: | + pip3 install unidiff + pip3 install wheel + pip3 install sh + + - name: Install Packages + run: | + sudo apt-get install ocaml-base-nox + wget https://launchpad.net/~npalix/+archive/ubuntu/coccinelle/+files/coccinelle_1.0.8~20.04npalix1_amd64.deb + sudo dpkg -i coccinelle_1.0.8~20.04npalix1_amd64.deb + + - name: Run Coding Guildeines Checks + continue-on-error: true + id: coding_guidelines + env: + BASE_REF: ${{ github.base_ref }} + run: | + export ZEPHYR_BASE=$PWD + 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 + if [ ${exit} == 1 ]; then + exit 1; + fi