From e15ddba7e75141d4c44f198fc813d9767af98f95 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sat, 27 Mar 2021 22:05:25 -0700 Subject: [PATCH] build: add GitHub Action for coverage with --without-intl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are parts of the code base that require a build without intl to be covered. So add a coverage job to build --without-intl. PR-URL: https://github.com/nodejs/node/pull/37954 Reviewed-By: Michaƫl Zasso Reviewed-By: Richard Lau Reviewed-By: James M Snell Reviewed-By: Yagiz Nizipli --- .../workflows/coverage-linux-without-intl.yml | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/coverage-linux-without-intl.yml diff --git a/.github/workflows/coverage-linux-without-intl.yml b/.github/workflows/coverage-linux-without-intl.yml new file mode 100644 index 00000000000000..f718c5c7773026 --- /dev/null +++ b/.github/workflows/coverage-linux-without-intl.yml @@ -0,0 +1,69 @@ +name: Coverage Linux (without intl) + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + paths-ignore: + - '**.md' + - benchmark/** + - deps/** + - doc/** + - .github/** + - '!.github/workflows/coverage-linux-without-intl.yml' + push: + branches: + - main + paths-ignore: + - '**.md' + - benchmark/** + - deps/** + - doc/** + - .github/** + - '!.github/workflows/coverage-linux-without-intl.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +env: + PYTHON_VERSION: '3.11' + FLAKY_TESTS: keep_retrying + +permissions: + contents: read + +jobs: + coverage-linux-without-intl: + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + persist-credentials: false + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@v4 + with: + python-version: ${{ env.PYTHON_VERSION }} + - name: Environment Information + run: npx envinfo + - name: Install gcovr + run: pip install gcovr==4.2 + - name: Build + run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn --coverage --without-intl" + # TODO(bcoe): fix the couple tests that fail with the inspector enabled. + # The cause is most likely coverage's use of the inspector. + - name: Test + run: NODE_V8_COVERAGE=coverage/tmp make test-cov -j2 V=1 TEST_CI_ARGS="-p dots --measure-flakiness 9" || exit 0 + - name: Report JS + run: npx c8 report --check-coverage + env: + NODE_OPTIONS: --max-old-space-size=8192 + - name: Report C++ + run: cd out && gcovr --gcov-exclude='.*\b(deps|usr|out|obj|cctest|embedding)\b' -v -r Release/obj.target --xml -o ../coverage/coverage-cxx.xml --root=$(cd ../ && pwd) + # Clean temporary output from gcov and c8, so that it's not uploaded: + - name: Clean tmp + run: rm -rf coverage/tmp && rm -rf out + - name: Upload + uses: codecov/codecov-action@v3 + with: + directory: ./coverage