Browse documentation
CI
CI overview
Set up continuous integration, inspect runs, and configure faster validation on Composal.
On this page
Run checks for your Changes, inspect their logs, and validate the candidate that will land. Composal reads GitHub Actions-style YAML from .vex/workflows and reports results alongside your Changes.
Start with one workflow
- Follow Configure workflows to add a workflow with a test command that already passes locally.
- Submit the Change. Open its checks or your repository’s Actions page to follow the run and inspect job logs.
- Fix any failing checks, then land through the merge queue. Keep push-only deployment jobs separate from tests.
- Once your baseline works, choose the optimization that matches your bottleneck below.
Configure and operate CI
| Task | Guide |
|---|---|
| Write YAML, choose triggers, and connect GitHub checks | Configure workflows |
| Understand system runners and adjust candidate concurrency | Runners and concurrency |
| Run only workflows affected by a monorepo change | Selective CI |
| Reuse dependencies and compiler outputs | Caching |
| Land stacks, prioritize work, and reuse queue tests on trunk | Merge queue CI |
| Investigate failures, waiting time, and performance | Inspect and troubleshoot |
Choose what to optimize
- Unrelated workflows run: configure path filters or a monorepo suite manifest. Selection operates on whole workflows, not individual test cases.
- Dependency setup or compilation is slow: measure a cache against a run without it. A cache hit does not mean tests passed.
- Candidates wait while runners have capacity: adjust candidate concurrency and compare queue wait with runner use.
- Tests repeat after landing: eligible queue-to-trunk result reuse can reuse the exact published candidate’s passing results. Push-only deployment jobs still run.
Check feature availability
Workflow execution is the starting point. Selective candidate CI, generated-file reconciliation, adjacent batching, published-target archive reuse, and queue-to-trunk test reuse have separate rollout controls. Adding YAML or a manifest does not enable a preview. Each guide explains its supported repository scope and administrator requirements.
Continue with Configure workflows.