Skip to content

ci: collect LLGo test coverage with Codecov - #854

Merged
xushiwei merged 10 commits into
goplus:mainfrom
cpunion:codex/llgo-coverage-codecov-20260927
Sep 27, 2026
Merged

xushiwei merged 10 commits into
goplus:mainfrom
cpunion:codex/llgo-coverage-codecov-20260927

Conversation

@cpunion

@cpunion cpunion commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

The LLGo workflow now collects and uploads coverage from the full test suite on macOS and Ubuntu. The workflow uses xgo-dev/setup-llgo with llgo-version: main, Go 1.27 and LLVM 22. The workflow uses the published setup-llgo v0.2.0 release, which installs the required linker and libclang dependencies. Its implementation and review fixes were merged in xgo-dev/setup-llgo#50. The repository-local setup action is unchanged.

The test command uses -coverpkg=./... so calls from the cl and tool tests also measure local dependencies such as clang, cl/cltest, and tool/listth. An explicit empty Codecov ignore list includes every reported package, including tool. Only the LLGo-generated coverage.txt is uploaded, with automatic report discovery disabled; go tool cover only reads that profile.

Validation:

  • llgo test -v -coverpkg=./... -covermode=atomic -coverprofile=coverage.txt ./... passed locally with LLGo main at 7db1409073f28bf13a35ae0a3ea663eba010fd73; go tool cover reported 80.1% statement coverage.
  • CI run 36294357536 using the published xgo-dev/setup-llgo@v0.2.0 release passed the full LLGo tests and Codecov uploads on macOS and Ubuntu. Statement coverage was 80.1% and 70.2%, respectively.
  • Codecov merged the two uploads into a report with 28 files across all six current top-level source directories and 79.11% line coverage.
  • actionlint .github/workflows/llgo.yml, git diff --check, and Codecov YAML validation passed.

Codecov's project check remains below the 83.32% baseline from 55f289c, which predates the repository rewrite and is 393 commits behind the PR base. The old report used go test without -coverpkg and covered a different source tree. Coverage thresholds are unchanged.

@codecov

codecov Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.11%. Comparing base (55f289c) to head (b69078e).
⚠️ Report is 393 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #854      +/-   ##
==========================================
- Coverage   83.32%   79.11%   -4.21%     
==========================================
  Files          28       28              
  Lines        2500     1743     -757     
==========================================
- Hits         2083     1379     -704     
+ Misses        369      364       -5     
+ Partials       48        0      -48     
Flag Coverage Δ
llgo-tests 79.11% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: switch LLGo to build-from-main + Codecov coverage

The change is well-structured overall. Path wiring is consistent: go -C .llgo build -o bin/llgo resolves to .llgo/bin/llgo, matching the release-tarball layout, and PATH ($GITHUB_WORKSPACE/.llgo/bin) + LLGO_ROOT ($GITHUB_WORKSPACE/.llgo) line up for both code paths. The Codecov step is well-guarded (github.repository check, !cancelled(), hashFiles presence), and use_oidc correctly restricts OIDC to same-repo events.

Note: xgo-dev/llgo is not new — download-llgo.sh already uses it as the release source, so it is the intended upstream, not a deviation introduced here.

Main themes below: (1) tracking an unpinned main on every run has supply-chain, reproducibility, and CI-cost consequences; (2) the from-source build is now on the hot path uncached and CPU-throttled; (3) a couple of small cleanups.

Comment thread .github/workflows/llgo.yml Outdated
Comment thread .github/actions/setup-llgo/action.yml Outdated
Comment thread .github/actions/setup-llgo/action.yml
Comment thread .github/actions/setup-llgo/action.yml Outdated

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review (cont.): two findings from the switch to build-from-main

Follow-up to the inline comments above — these two were on the build step and are the highest-value points.

Comment thread .github/actions/setup-llgo/action.yml Outdated
Comment thread .github/actions/setup-llgo/action.yml Outdated
@xushiwei
xushiwei merged commit ca0e749 into goplus:main Sep 27, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants