diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index e5eff5ee4474eb..312ba0b3c9706a 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -49,6 +49,40 @@ jobs: run: npx envinfo - name: Lint C/C++ files run: make lint-cpp + format-cpp: + if: ${{ github.event.pull_request.draft == false && github.base_ref == 'master' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + persist-credentials: false + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v3 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@v3 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: Environment Information + run: npx envinfo + - name: Format C/C++ files + run: | + make format-cpp-build + CLANG_FORMAT_START="$(git merge-base HEAD refs/remotes/origin/$GITHUB_BASE_REF)" \ + make format-cpp + git --no-pager diff --exit-code && EXIT_CODE="$?" || EXIT_CODE="$?" + if [ "$EXIT_CODE" != "0" ] + then + echo + echo 'ERROR: Please run:' + echo + echo ' CLANG_FORMAT_START="$(git merge-base HEAD )" make format-cpp' + echo + echo 'to format the commits in your branch.' + exit "$EXIT_CODE" + fi lint-js-and-md: if: github.event.pull_request.draft == false runs-on: ubuntu-latest