Skip to content

Speed up CI by decoupling test runs from full build completion #1427

@dannywillems

Description

@dannywillems

Description

Currently, our CI workflow waits for all build jobs (binaries) to complete before running any tests (unit, integration, e2e). This makes the pipeline unnecessarily slow, since the tests only require the binary from a single build (or a subset), not every possible build target.

Problem

  • All test jobs are blocked by the slowest build job.
  • Even if one build produces a usable binary, tests do not start until all builds are finished.
  • This increases total CI time significantly.

Proposed Solution

  • Update CI workflow so that test jobs depend only on the relevant build(s) needed for them, not all builds.
  • Example:
    • Unit tests → depend on single debug build
    • Integration/e2e tests → depend on one representative release build
    • Other builds (cross-platform, different targets, etc.) can run in parallel, but shouldn’t block tests.

Acceptance Criteria

  • Tests (unit, integration, e2e) start as soon as their required binary is built.
  • CI total runtime is reduced.
  • No loss of coverage (all builds still happen, but tests are unblocked earlier).

Additional Notes

  • May need to refactor how build artifacts are named/published between jobs.
  • Consider using a build matrix with selective dependencies in GitHub Actions.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions