Skip to content

0007: Select affected CI and Preview work

Use Turbo task inputs while keeping required checks reportable

  • Status: Accepted
  • Date: 2026-09-15
  • Decision maker: Trevor Gerhardt

Context

A full verification run for every pull request spends time on work a change cannot affect. GitHub can leave a required check pending when path filters skip its workflow.

Decision

Pull requests use Turbo's affected task graph with their base and head commits. Task inputs decide selection and caching. Pushes to main and manual verification select the full suite. The required verify and Preview health aggregate jobs exist for every pull request into main and report the result of their dependent jobs.

CI runs on GitHub only for pull requests into main that are ready for review. A draft pull request skips every CI job, and a pull request into another branch, such as a stacked pull request, starts no CI run. pnpm ci:local verifies those pull requests without Actions minutes. CI runs when a pull request into main becomes ready for review.

Preview provisioning runs only for relevant trusted changes. A manual rebuild requires an open pull request whose head belongs to conveyal/concourse. Trusted closure still runs cleanup. A deployed Preview must match the selected commit and pass readiness checks.

The command reference owns the verification task graph. The deployment guide owns Preview setup and cleanup.

Consequences

  • Documentation-only changes do not start database or browser suites.
  • Shared safety inputs can select work across the repository.
  • Missing comparison history selects a conservative full run. Query failures fail CI.
  • Unaffected jobs still report success. verify fails when a dependency fails, is cancelled, or is skipped.
  • A draft pull request reports a skipped verify. GitHub cannot merge a draft, and the run after it becomes ready replaces that result.
  • A stacked pull request runs CI on GitHub only after its base changes to main. The ruleset requires an up-to-date branch, so the push that updates the branch starts the run.
  • Preview health fails only when a dependency fails or is cancelled. A skipped job passes: provisioning and cleanup never both run, and fork pull requests skip both.

References