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
