build(homebrew): reduce test duplication and add test coverage for macOS#5331
Merged
Merged
Conversation
Bundle ReportBundle size has no change ✅ |
9e04b25 to
c2ebdde
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #5331 +/- ##
==========================================
+ Coverage 18.02% 27.55% +9.53%
==========================================
Files 111 113 +2
Lines 24623 25557 +934
Branches 10903 11232 +329
==========================================
+ Hits 4438 7042 +2604
+ Misses 18542 15395 -3147
- Partials 1643 3120 +1477
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report in Codecov by Harness.
|
c199f9e to
adf38fc
Compare
adf38fc to
7facca4
Compare
Pin LizardByte/actions/actions/release_homebrew to commit a46850981292c4bbc0c41715f286ad95adaaaf4a (v2026.625.20301) in CI workflows. Replaces previous refs (200eaeb897a2b065a65cb6f16b41077432007490 and fix/release_homebrew/reduce-test-duplication) used by the Validate Homebrew Formula and Upload Homebrew Beta Formula jobs.
5d4ca31 to
cb895b6
Compare
Enable coverage reporting for Homebrew macOS CI jobs and consolidate gcovr usage in the Homebrew formula. Move gcovr to a top-level dependency, remove the duplicated on_linux entry, and add coverage_gcov_executable to pick llvm-cov's gcov on macOS or the GCC gcov on Linux. generate_coverage_report now uses the selected gcov executable and no longer skips macOS; the test harness also always asserts the presence of coverage.xml. Changes affect .github/workflows/ci.yml and packaging/sunshine.rb.
cb895b6 to
7188c6d
Compare
Enable source-based LLVM coverage on macOS and unify test binary handling. Adds SUNSHINE_LLVM_COVERAGE CMake option and LLVM compile/link flags, introduces LLVM_PROFILE_FILE handling, llvm-profdata discovery, and gcovr invocation path for macOS (.profraw -> llvm-profdata flow). Factors out TEST_BINARY constant, updates test invocation and install to use it, and adds checks to ensure profile data and coverage lines exist. Removes the previous macOS llvm formula dependency and replaces gcov-specific options with separate LLVM vs GCC coverage code paths.
edb4d1f to
47b8a67
Compare
Update CI to upload and consume lcov coverage output and make coverage file configurable per matrix. The workflows now include coverage.lcov in artifacts and expose a matrix coverage_file used by the Codecov step. Refactor packaging/sunshine.rb to support generating LLVM-based lcov on macOS and keep gcov/xml generation on Linux: add constants, new helpers to merge profraw into profdata, export llvm-cov lcov, rewrite source paths to be relative to src/, and validate lcov output. Adjust artifact handling to expect coverage.lcov on macOS and coverage.xml on Linux and update assertions accordingly.
47b8a67 to
a02a553
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.



Description
Try to reduce duplication in homebrew builds. Additionally adds test coverage for macOS homebrew builds using lcov (instead of gcovr). gcovr is still used on Linux though.
Screenshot
Issues Fixed or Closed
Roadmap Issues
Type of Change
Checklist
AI Usage