Skip to content

Latest commit

 

History

History
22 lines (15 loc) · 1.33 KB

File metadata and controls

22 lines (15 loc) · 1.33 KB

CI Design

Workflows

  • CI (ci.yml) validates PRs (format-check, build, package, test).
  • Publish (publish.yml) commits built dist/ artifacts after merges to main and release-* branches.
  • Release (release.yml) stamps versions and creates tags (manual trigger). Does not build dist/ itself -- Publish handles that when Release pushes to main or release-*.
  • Backport (backport.yml) cherry-picks merged PRs to release branches via the backport-action itself.

Why dist/ is committed post-merge, not in PRs

Backporting cherry-picks PR commits to release branches. Since dist/ differs across branches, including dist/ in PRs causes merge conflicts during backporting. The Publish workflow builds and commits dist/ separately after each merge, avoiding this.

It is fine to temporarily include dist/ in a PR branch for E2E testing (via backport-action-test) or manual testing, but dist/ changes should be removed before merging to support backporting the PR.

Publish concurrency

When multiple PRs merge in quick succession, overlapping Publish runs can race. The cancel-in-progress concurrency group ensures only the latest run completes. If a stale run's push fails (non-fast-forward because main moved), it is harmless -- the latest run handles it.