Run code coverage job concurrently with test jobs #65

Merged
jwilger merged 2 commits from optimize-ci-coverage-concurrency into main 2025-07-08 21:09:47 -07:00
jwilger commented 2025-07-08 21:04:12 -07:00 (Migrated from github.com)

Description

This PR optimizes the CI pipeline by running the code coverage job concurrently with test jobs instead of waiting for them to complete first. This reduces the overall CI pipeline duration without any functional changes.

The Issue

The code coverage job had needs: [test], making it wait for all test jobs (stable, beta, nightly) to complete before starting. However, the coverage job:

  • Sets up its own PostgreSQL services
  • Has its own dependency caching
  • Runs tests independently with cargo-llvm-cov
  • Doesn't reuse any artifacts from test jobs

This created an unnecessary bottleneck where coverage couldn't start until all test matrix jobs finished.

The Solution

Remove the needs: [test] dependency, allowing the coverage job to run concurrently with other CI jobs. This should reduce total CI time by approximately the duration of the coverage job itself (several minutes).

Impact

  • Faster CI feedback: Coverage results available sooner
  • Better resource utilization: More jobs running in parallel
  • No functional changes: Coverage still runs the same tests
  • No risk: Jobs are independent and don't interfere with each other

Definition of Done Checklist

Please ensure all items in this checklist are completed before merging:

  • Code follows project style guidelines
  • Changes are well-documented
  • All tests pass
  • Performance implications have been considered
  • Security implications have been reviewed
  • Breaking changes are documented
  • The change is backward compatible where possible
## Description This PR optimizes the CI pipeline by running the code coverage job concurrently with test jobs instead of waiting for them to complete first. This reduces the overall CI pipeline duration without any functional changes. ### The Issue The code coverage job had `needs: [test]`, making it wait for all test jobs (stable, beta, nightly) to complete before starting. However, the coverage job: - Sets up its own PostgreSQL services - Has its own dependency caching - Runs tests independently with `cargo-llvm-cov` - Doesn't reuse any artifacts from test jobs This created an unnecessary bottleneck where coverage couldn't start until all test matrix jobs finished. ### The Solution Remove the `needs: [test]` dependency, allowing the coverage job to run concurrently with other CI jobs. This should reduce total CI time by approximately the duration of the coverage job itself (several minutes). ### Impact - **Faster CI feedback**: Coverage results available sooner - **Better resource utilization**: More jobs running in parallel - **No functional changes**: Coverage still runs the same tests - **No risk**: Jobs are independent and don't interfere with each other ## Definition of Done Checklist Please ensure all items in this checklist are completed before merging: - [x] Code follows project style guidelines - [x] Changes are well-documented - [x] All tests pass - [x] Performance implications have been considered - [x] Security implications have been reviewed - [x] Breaking changes are documented - [x] The change is backward compatible where possible
copilot-pull-request-reviewer[bot] (Migrated from github.com) reviewed 2025-07-08 21:04:27 -07:00
copilot-pull-request-reviewer[bot] (Migrated from github.com) left a comment

Pull Request Overview

This PR speeds up the CI pipeline by allowing the code coverage job to run in parallel with test jobs rather than waiting on them.

  • Removed the needs: [test] dependency from the coverage job
  • Added a comment explaining the change for clarity
## Pull Request Overview This PR speeds up the CI pipeline by allowing the code coverage job to run in parallel with test jobs rather than waiting on them. - Removed the `needs: [test]` dependency from the coverage job - Added a comment explaining the change for clarity
Sign in to join this conversation.
No description provided.