name: Compliance on: pull_request jobs: compliance_job: runs-on: ubuntu-latest name: Run compliance checks on patch series (PR) steps: - name: Checkout the code uses: actions/checkout@v1 - name: cache-pip uses: actions/cache@v1 with: path: ~/.cache/pip key: ${{ runner.os }}-doc-pip - name: Install python dependencies run: | pip3 install setuptools pip3 install wheel pip3 install python-magic junitparser gitlint pylint pykwalify pip3 install west - name: Run Compliance Tests id: compliance env: BASE_REF: ${{ github.base_ref }} run: | export PATH=$PATH:~/.local/bin export ZEPHYR_BASE=$PWD git config --global user.email "you@example.com" git config --global user.name "Your Name" git rebase origin/${BASE_REF} ./scripts/ci/check_compliance.py -m Codeowners -m Devicetree -m Gitlint -m Identity -m Nits -m pylint -m checkpatch -m Kconfig -c origin/${BASE_REF}.. || true - name: upload-results uses: actions/upload-artifact@master continue-on-error: True with: name: compliance.xml path: compliance.xml - name: check-warns run: | if [ -s Nits.txt ]; then errors=$(cat Nits.txt) errors="${errors//'%'/'%25'}" errors="${errors//$'\n'/'%0A'}" errors="${errors//$'\r'/'%0D'}" echo "::error file=Nits.txt::$errors" exit=1 fi if [ -s checkpatch.txt ]; then errors=$(cat checkpatch.txt) errors="${errors//'%'/'%25'}" errors="${errors//$'\n'/'%0A'}" errors="${errors//$'\r'/'%0D'}" echo "::error file=Checkpatch.txt::$errors" exit=1 fi if [ -s Identity.txt ]; then errors=$(cat Identity.txt) errors="${errors//'%'/'%25'}" errors="${errors//$'\n'/'%0A'}" errors="${errors//$'\r'/'%0D'}" echo "::error file=Identity.txt::$errors" exit=1 fi if [ -s Gitlint.txt ]; then errors=$(cat Gitlint.txt) errors="${errors//'%'/'%25'}" errors="${errors//$'\n'/'%0A'}" errors="${errors//$'\r'/'%0D'}" echo "::error file=Gitlint.txt::$errors" exit=1 fi if [ -s pylint.txt ]; then errors=$(cat pylint.txt) errors="${errors//'%'/'%25'}" errors="${errors//$'\n'/'%0A'}" errors="${errors//$'\r'/'%0D'}" echo "::error file=pylint.txt::$errors" exit=1 fi if [ -s Devicetree.txt ]; then errors=$(cat Devicetree.txt) errors="${errors//'%'/'%25'}" errors="${errors//$'\n'/'%0A'}" errors="${errors//$'\r'/'%0D'}" echo "::error file=Devicetree.txt::$errors" exit=1 fi if [ -s Kconfig.txt ]; then errors=$(cat Kconfig.txt) errors="${errors//'%'/'%25'}" errors="${errors//$'\n'/'%0A'}" errors="${errors//$'\r'/'%0D'}" echo "::error file=Kconfig.txt::$errors" exit=1 fi if [ -s Codeowners.txt ]; then errors=$(cat Codeowners.txt) errors="${errors//'%'/'%25'}" errors="${errors//$'\n'/'%0A'}" errors="${errors//$'\r'/'%0D'}" echo "::error file=Codeowners.txt::$errors" exit=1 fi if [ ${exit} == 1 ]; then exit 1; fi