ci: re-enable Coveralls coverage upload (Tier 1)#2125
Open
jcelerier wants to merge 1 commit into
Open
Conversation
jcelerier
force-pushed
the
ci/coverage-coveralls
branch
from
July 17, 2026 15:00
151bf06 to
fa075d5
Compare
jcelerier
force-pushed
the
ci/coverage-coveralls
branch
from
July 18, 2026 13:37
fa075d5 to
d44ff88
Compare
jcelerier
force-pushed
the
ci/coverage-coveralls
branch
2 times, most recently
from
July 19, 2026 03:08
301433b to
7109926
Compare
The coverage job sits on top of the SCORE_TESTING suite: the old
INTEGRATION_TESTING flag is deprecated and master previously had only a
single ctest test, so this is the first point where a coverage job
measures something real.
Coverage -> coveralls.io was a Travis-only gcov/lcov job (coveralls-lcov gem)
orphaned when the linux-gcov matrix leg was dropped and deleted in 2021
("Adios Travis"); never ported to Azure or GitHub Actions. This restores it.
- cmake/ScoreConfiguration.cmake: SCORE_COVERAGE was a silent no-op that would
error at configure — it include()d a CodeCoverage.cmake module that no longer
exists, so the flags were empty and setup_target_for_coverage() was undefined.
Now inject the gcov flags directly (add_compile_options/add_link_options).
- tests/Integration/CMakeLists.txt: drop the two undefined
setup_target_for_coverage() calls (gcovr replaces the Bilke report targets).
- ci/coverage.build.sh: Debug + SCORE_TESTING + SCORE_COVERAGE build, run the
ctest suite under xvfb (llvmpipe GL, dummy audio) so the unit/integration/
regression/gui tests run, then gcovr --coveralls-pretty (clang via
llvm-cov gcov) -> coverage.json.
- .github/workflows/coverage.yml: ubuntu:noble container, reuses
ci/ubuntu.noble.deps.sh + xvfb, uploads via coverallsapp/github-action@v2.
Scope: the full suite runs on hardware rigs (GPU/capture), so this CI job
covers the offscreen/model/logic tests only — gfx/interop/video stay ~0% here
and will be covered by rig-fed parallel builds later. Coverage grows as more
of the SCORE_TESTING suite lands.
Prerequisites (repo-admin, one-time): enable the Coveralls GitHub App on
ossia/score; re-add the README badge (old slug OSSIA/i-score).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014rZgzE8JjWvHDtaVUhxpLE
jcelerier
force-pushed
the
ci/coverage-coveralls
branch
from
July 19, 2026 21:55
7109926 to
da6e6e2
Compare
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Restores coverage reporting to coveralls.io — a Travis-only gcov/lcov job (the
coveralls-lcovgem) orphaned when thelinux-gcovmatrix leg was dropped and deleted in 2021 ("Adios Travis"), never ported to Azure or GitHub Actions.Based on
tests/infrastructure(#2117), not master, deliberately: a coverage job is only meaningful on top of the suite it measures. master has 1 ctest test and the oldINTEGRATION_TESTINGflag is deprecated; theSCORE_TESTINGsuite (#2117 = 9 tests, growing as the stack lands) is the real CI-runnable surface.What was broken
SCORE_COVERAGEwas a silent no-op that would error at configure — itinclude()d acmake/modules/CodeCoverage.cmakethat no longer exists (Bilke module, left under the oldCMake/path), so flags were empty andsetup_target_for_coverage()was undefined.This PR
cmake/ScoreConfiguration.cmake— inject the gcov flags directly (add_compile_options/add_link_options).tests/Integration/CMakeLists.txt— drop the two undefinedsetup_target_for_coverage()calls.ci/coverage.build.sh— Debug +SCORE_TESTING+SCORE_COVERAGEbuild, run ctest under xvfb (llvmpipe GL, dummy audio) so unit/integration/regression/GUI tests run, thengcovr --coveralls-pretty(clang viallvm-cov gcov) →coverage.json..github/workflows/coverage.yml—ubuntu:noblecontainer, reusesci/ubuntu.noble.deps.sh+ xvfb, uploads viacoverallsapp/github-action@v2.The gcov → Coveralls-JSON mechanism was validated locally end-to-end (valid report with git metadata + per-file coverage).
Scope / caveat
The real suite runs on hardware rigs, so this CI job covers the offscreen model/logic tests only — gfx/interop/video stay ~0% here. That's the target of the rig-fed Tier 2 (Coveralls parallel builds) in the follow-up plan. The number grows as the
SCORE_TESTINGstack merges upward.One-time prerequisites (repo admin)
ossia/score(token viagithub.token, no secret).OSSIA/i-score).🤖 Generated with Claude Code