Skip to main content
Every GitHub milestone tracked by LaneSync progresses through a fixed sequence of stages. The backend state machine evaluates live GitHub data to determine the current stage and whether gates are blocking.

Pipeline overview

LaneSync five-stage release pipeline

Stage gates

PLANNING

Purpose: Ensure release scope is defined and owned before development begins. Blocking items: Unassigned issues appear as blocking in stage details. Config (sdlc.yaml):

DEVELOPMENT

Purpose: Build and integrate on the trunk branch with CI enforcement. Blocking items:
  • Open milestone issues
  • Required CI checks in failure or pending state (only checks listed in sdlc.yaml required_checks)
Config:
Development stage blocking applies only to checks listed in required_checks and with a failure conclusion. Non-required workflow runs are never marked blocking.

TESTING

Purpose: Validate the release candidate on a release branch or trunk. Blocking items:
  • Missing release branch (when branch_pattern is configured)
  • Failed or pending required checks on the release branch
Config:
LaneSync supports trunk-based releases (no release branch) and release-branch workflows. Configure during the repo setup wizard.

EVIDENCING

Purpose: Collect and approve quality evidence before production promotion. Blocking items:
  • Missing required artifacts
  • Evidence PR not approved
Config:

DEPLOYMENT

Purpose: Controlled promotion to production. Config:
The deploy gate API (GET /api/milestones/check?version=&repo=) requires CI authentication (OIDC or API key) and returns can_deploy: true only when the milestone is in DEPLOYMENT and all prior gates pass for the authenticated tenant.

DEPLOYED

Purpose: Terminal state — release is live in production. No further gates. The milestone remains visible in the dashboard for audit and quality comparison with future releases.

How stage is computed

LaneSync does not let users manually set stages. On every sync (webhook or background job):
  1. Fetch milestone issues, PRs, and workflow runs from GitHub
  2. Load sdlc.yaml (live from GitHub for stage-details; cached in DB for sync)
  3. Evaluate gate conditions in order
  4. Record stage transitions with timestamps for audit
See Enforcement for how violations are blocked at merge time.