From 871c9c17b5cae667958f6bca96816f3de2d9b4c0 Mon Sep 17 00:00:00 2001 From: Darshan Sen Date: Wed, 13 Apr 2022 22:52:00 +0530 Subject: [PATCH] build: run clang-format on CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We already include the tool inside tools/clang-format, so we should start using it on CI. This attempts to run the linter only on the commits present in an opened PR. Signed-off-by: Darshan Sen PR-URL: https://github.com/nodejs/node/pull/42681 Reviewed-By: Rich Trott Reviewed-By: Michaƫl Zasso Reviewed-By: James M Snell --- .github/workflows/linters.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) 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