Skip to content

Conversation

@NicoMolinaOZ
Copy link
Contributor

@NicoMolinaOZ NicoMolinaOZ commented Dec 23, 2025

Summary

This PR adds code coverage collection infrastructure for integration tests using LLVM coverage tools, laying the groundwork for comprehensive coverage reporting across all test types (unit, AI, dev, properties, and integration tests).

  • Set up LLVM-based coverage instrumentation in the integration test Docker build
  • Configure Codecov with separate flags for different test suites
  • Add CI workflow steps to verify coverage generation
  • Update build scripts to handle coverage artifacts in both CI and local environments

IMPORTANT NOTE: Integration test coverage upload to Codecov is currently disabled (TODO comments) and will be enabled once the test suite reaches sufficient maturity. By disabling the coverage report upload, we avoid affecting the current coverage percentage with integration tests that are not yet ready.

Testing Process

Checklist

  • Add a reference to related issues in the PR description.
  • Add unit tests if applicable.

Note

If you are using Relayer in your stack, consider adding your team or organization to our list of Relayer Users in the Wild!

Summary by CodeRabbit

  • Chores
    • Updated Codecov configuration to include integration test coverage tracking
    • Added automated integration test coverage upload step to CI/CD pipeline
    • Enhanced Docker build process to support integration test coverage collection and reporting

✏️ Tip: You can customize this high-level summary in your review settings.

@NicoMolinaOZ NicoMolinaOZ requested a review from a team as a code owner December 23, 2025 14:55
@coderabbitai
Copy link

coderabbitai bot commented Dec 23, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

These changes introduce integration test coverage collection and reporting infrastructure. A new Docker coverage stage is added with LLVM tools, Docker Compose is updated to build and mount this stage, GitHub Actions workflow adds a Codecov upload step, and codecov configuration defines the integration flag.

Changes

Cohort / File(s) Summary
Codecov Configuration
\.github/codecov\.yml
Added new integration flag section with paths pointing to src/, carryforward and informational flags enabled
GitHub Actions Workflow
\.github/workflows/integration-tests\.yaml
Added "Upload Integration Coverage to Codecov" step that executes after tests complete, uploads coverage report with integration flag, and tolerates failures
Docker Build Configuration
Dockerfile\.integration
Added coverage stage that installs LLVM tools (llvm-tools-preview, cargo-llvm-cov), configures environment for coverage collection, and defines CMD to run cargo-llvm-cov for integration tests
Docker Compose Configuration
docker-compose\.integration\.yml
Updated integration-tests service to target coverage build stage, replaced test-results volume mount with coverage mount pointing to /app/coverage

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • tirumerla
  • zeljkoX

Poem

🐰 Hop, hop! Coverage tales to tell,
LLVM gathers metrics so well,
From Docker stages, reports take flight,
To Codecov clouds, shining bright!
Integration tests, now fully seen, 📊

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description includes a detailed Summary section and properly formatted Checklist, but the Testing Process section is empty and lacks concrete testing information. Complete the Testing Process section by describing how the integration test coverage changes were validated, and check the relevant checklist items or explain why they are not applicable.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding coverage report functionality for integration tests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codecov-for-integration-tests

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docker-compose.integration.yml (1)

112-112: Remove the unused test-results volume.

The test-results volume is defined but not mounted by any service. The coverage output is now collected via the ./coverage mount in the integration-tests service. Remove this unused volume definition.

🧹 Nitpick comments (1)
.github/codecov.yml (1)

4-4: Clarify the comment to reflect the new integration flag.

The comment states "Wait for all 3 flag uploads (ai, dev, properties)" but doesn't account for the newly added integration flag. While the integration flag is informational and correctly excluded from status checks, the comment should be updated for clarity.

🔎 Suggested clarification
-  after_n_builds: 3  # Wait for all 3 flag uploads (ai, dev, properties)
+  after_n_builds: 3  # Wait for all 3 non-informational flag uploads (ai, dev, properties)
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 459a301 and 24d7a94.

📒 Files selected for processing (4)
  • .github/codecov.yml
  • .github/workflows/integration-tests.yaml
  • Dockerfile.integration
  • docker-compose.integration.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: boostsecurity - boostsecurityio/semgrep-pro
  • GitHub Check: Redirect rules - openzeppelin-relayer
  • GitHub Check: Header rules - openzeppelin-relayer
  • GitHub Check: Pages changed - openzeppelin-relayer
  • GitHub Check: Analyze (rust)
  • GitHub Check: semgrep/ci
🔇 Additional comments (6)
.github/codecov.yml (1)

32-36: LGTM! Integration flag configuration is appropriate.

The informational: true setting is appropriate for a WIP feature, ensuring the integration coverage won't block CI while the functionality is being refined.

docker-compose.integration.yml (2)

86-86: LGTM! Coverage target is correctly configured.

The change to target the coverage stage aligns with the new coverage collection infrastructure added in Dockerfile.integration.


105-106: LGTM! Coverage volume mount is properly configured.

The volume mount correctly maps the local ./coverage directory to /app/coverage in the container, enabling coverage data collection.

Dockerfile.integration (2)

19-22: LGTM! LLVM tools installation is correct.

The installation of llvm-tools-preview and cargo-llvm-cov provides the necessary tooling for coverage collection.


70-74: LGTM! Coverage command is properly configured.

The cargo llvm-cov command is correctly set up to generate LCOV format output at the expected path with appropriate test flags.

.github/workflows/integration-tests.yaml (1)

50-58: LGTM! Codecov upload is properly configured.

The coverage upload step is well-configured with:

  • if: always() ensures coverage is uploaded even on test failures
  • Pinned action SHA for security
  • fail_ci_if_error: false is appropriate for a WIP feature
  • The file path and flags align with the codecov.yml configuration

@codecov
Copy link

codecov bot commented Dec 23, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.17%. Comparing base (4716987) to head (29b2fb4).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
Flag Coverage Δ
properties 0.02% <ø> (-0.01%) ⬇️

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

@@            Coverage Diff             @@
##             main     #599      +/-   ##
==========================================
- Coverage   92.29%   92.17%   -0.13%     
==========================================
  Files         250      250              
  Lines       90637    90756     +119     
==========================================
  Hits        83650    83650              
- Misses       6987     7106     +119     

see 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@NicoMolinaOZ NicoMolinaOZ merged commit f350048 into main Jan 7, 2026
26 of 27 checks passed
@NicoMolinaOZ NicoMolinaOZ deleted the codecov-for-integration-tests branch January 7, 2026 13:25
@github-actions github-actions bot locked and limited conversation to collaborators Jan 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants