@@ -67,16 +67,32 @@ jobs:
6767 ${{ runner.os }}-turbo-
6868 - name : Run test coverage with split core integration lane
6969 run : pnpm test:coverage
70- - name : Upload coverage to Codecov
70+ # Coverage is uploaded in three separate steps so each LCOV gets the
71+ # correct flag set. Codecov double-counts overlapping lines when a
72+ # single upload carries multiple flags whose paths overlap, so the
73+ # two core lanes (which both cover packages/core/src/**) must be
74+ # uploaded individually with their own lane flag.
75+ # See https://docs.codecov.com/docs/flags
76+ - name : Upload non-core coverage to Codecov
7177 uses : codecov/codecov-action@v4
7278 with :
7379 files : >-
7480 src/coverage/lcov.info,
7581 webview-ui/coverage/lcov.info,
76- packages/core/coverage/unit/lcov.info,
77- packages/core/coverage/integration/lcov.info,
7882 packages/cloud/coverage/lcov.info,
7983 packages/telemetry/coverage/lcov.info,
8084 apps/cli/coverage/lcov.info
8185 flags : ${{ matrix.codecov-flag }}
8286 token : ${{ secrets.CODECOV_TOKEN }}
87+ - name : Upload core unit coverage to Codecov
88+ uses : codecov/codecov-action@v4
89+ with :
90+ files : packages/core/coverage/unit/lcov.info
91+ flags : ${{ matrix.codecov-flag }},core-unit
92+ token : ${{ secrets.CODECOV_TOKEN }}
93+ - name : Upload core integration coverage to Codecov
94+ uses : codecov/codecov-action@v4
95+ with :
96+ files : packages/core/coverage/integration/lcov.info
97+ flags : ${{ matrix.codecov-flag }},core-integration
98+ token : ${{ secrets.CODECOV_TOKEN }}
0 commit comments