Skip to content

github: workflows: Align build.yml with upstream-build.yml #215

github: workflows: Align build.yml with upstream-build.yml

github: workflows: Align build.yml with upstream-build.yml #215

Workflow file for this run

name: Compliance
on:
pull_request:
types:
- edited
- opened
- reopened
- synchronize
jobs:
compliance:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
path: zephyr-silabs
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Setup Zephyr project
uses: zephyrproject-rtos/action-zephyr-setup@v1
with:
app-path: zephyr-silabs
toolchains: arm-zephyr-eabi
- name: Install compliance-specific python dependencies
run: |
pip3 install python-magic lxml junitparser gitlint pylint pykwalify yamllint clang-format unidiff
- name: Run Compliance Tests
continue-on-error: true
id: compliance
working-directory: zephyr-silabs
run: |
export ZEPHYR_BASE="$(dirname "$(pwd)")/zephyr"
$ZEPHYR_BASE/scripts/ci/check_compliance.py --annotate -c origin/${GITHUB_BASE_REF}..
- name: upload-results
uses: actions/upload-artifact@v3
continue-on-error: true
with:
name: compliance.xml
path: zephyr-silabs/compliance.xml
- name: check-warns
working-directory: zephyr-silabs
run: |
export ZEPHYR_BASE="$(dirname "$(pwd)")/zephyr"
if [[ ! -s "compliance.xml" ]]; then
exit 1;
fi
warns=("ClangFormat")
files=($($ZEPHYR_BASE/scripts/ci/check_compliance.py -l))
for file in "${files[@]}"; do
f="${file}.txt"
if [[ -s $f ]]; then
results=$(cat $f)
results="${results//'%'/'%25'}"
results="${results//$'\n'/'%0A'}"
results="${results//$'\r'/'%0D'}"
if [[ "${warns[@]}" =~ "${file}" ]]; then
echo "::warning file=${f}::$results"
else
echo "::error file=${f}::$results"
exit=1
fi
fi
done
if [ "${exit}" == "1" ]; then
echo "Compliance error, check for error messages in the \"Run Compliance Tests\" step"
echo "You can run this step locally with the ./scripts/ci/check_compliance.py script."
exit 1;
fi