fix: workaround Bazel lcov parsing bug #1653
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
# Controls when the action will run. | |
on: | |
# Triggers the workflow on push or pull request events | |
push: | |
branches: | |
- main | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
concurrency: | |
# Cancel previous actions from the same PR or branch except 'main' branch. | |
# See https://docs.github.com/en/actions/using-jobs/using-concurrency and https://docs.github.com/en/actions/learn-github-actions/contexts for more info. | |
group: concurrency-group::${{ github.workflow }}::${{ github.event.pull_request.number > 0 && format('pr-{0}', github.event.pull_request.number) || github.ref_name }}${{ github.ref_name == 'main' && format('::{0}', github.run_id) || ''}} | |
cancel-in-progress: ${{ github.ref_name != 'main' }} | |
jobs: | |
# test: | |
# uses: bazel-contrib/.github/.github/workflows/bazel.yaml@646899086d7aaee8e532540480f3e91e00596234 # 11 Dec 2024 | |
# with: | |
# # NB: the root folder is tested with Aspect Workflows on BuildKite, see /.aspect/workflows/config.yaml | |
# folders: '["e2e/smoke", "e2e/repository-rule-deps", "e2e/system-interpreter", "examples/uv_pip_compile"]' | |
# # TODO: Build Windows tools and add to toolchain | |
# # TODO(alex): switch the root folder to bzlmod | |
# # TODO: fix remaining folders on Bazel 8 | |
# exclude: | | |
# [ | |
# {"os": "windows-latest"}, | |
# {"folder": "e2e/repository-rule-deps", "bzlmodEnabled": false}, | |
# {"folder": "e2e/system-interpreter", "bzlmodEnabled": false}, | |
# {"folder": "examples/uv_pip_compile", "bzlmodEnabled": false}, | |
# {"folder": "e2e/smoke", "bazelversion": "8.0.0"} | |
# ] | |
# pre-commit: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: pre-commit/action@v3.0.1 | |
# verify-bcr-patches: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - run: patch --dry-run -p1 --fuzz 0 < .bcr/patches/*.patch | |
test-release: | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: write # allow commenting to the PR with the token | |
defaults: | |
run: | |
working-directory: e2e/use_release | |
# This test references pre-built artifacts from a prior release. | |
# See py/private/toolchain/tools.bzl where this is referenced from rctx.os.environ. | |
# Will need to bump this version in the future when there are breaking changes. | |
# NB: update tools/integrity.bzl at the same time! | |
env: | |
RULES_PY_RELEASE_VERSION: 1.1.0 | |
steps: | |
- uses: actions/checkout@v4 | |
#- run: ./minimal_download_test.sh | |
- run: bazel coverage --combined_report=lcov //src/... | |
- uses: hrishikesh-kadam/setup-lcov@6c1aa0cc9e1c02f9f58f01ac599f1064ccc83470 # v1 | |
# The github-actions-report-lcov doesn't follow symlinks, so get an absolute path | |
- run: echo "output_path=$(bazel info output_path)" >> $GITHUB_ENV | |
- run: ls -alF _coverage | |
working-directory: ${{ env.output_path }} | |
- name: Report code coverage | |
if: github.event.pull_request.head.repo.fork == false # Forks always have read-only tokens | |
uses: alexeagle/github-actions-report-lcov@a7ff65152738ca17677ca08bc552d5ad2da4d1e7 | |
with: | |
title-prefix: "e2e/use_release folder:" | |
follow-symbolic-links: false | |
working-directory: ${{ env.output_path }} | |
# Point to the already-merged data file Bazel produces with --combined_report=lcov | |
# Follows https://bazel.build/configure/coverage#running_coverage | |
coverage-files: _coverage/_coverage_report.dat | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
update-comment: true | |
# For branch protection settings, this job provides a "stable" name that can be used to gate PR merges | |
# on "all matrix jobs were successful". | |
# conclusion: | |
# needs: | |
# - test | |
# - verify-bcr-patches | |
# - test-release | |
# - pre-commit | |
# runs-on: ubuntu-latest | |
# if: always() | |
# steps: | |
# - uses: technote-space/workflow-conclusion-action@45ce8e0eb155657ab8ccf346ade734257fd196a5 # v3.0.3 | |
# # Note: possible conclusion values: | |
# # https://github.com/technote-space/workflow-conclusion-action/blob/main/src/constant.ts | |
# - name: report success | |
# if: ${{ env.WORKFLOW_CONCLUSION == 'success' }} | |
# working-directory: /tmp | |
# run: echo ${{ env.WORKFLOW_CONCLUSION }} && exit 0 | |
# - name: report failure | |
# if: ${{ env.WORKFLOW_CONCLUSION == 'failure' }} | |
# working-directory: /tmp | |
# run: echo ${{ env.WORKFLOW_CONCLUSION }} && exit 1 |