@@ -18,7 +18,7 @@ This plan sequences that work into independently-mergeable phases, each with a r
1818
1919- ** Test runner:** Jest 24 → ** Vitest** . Runs ` .ts ` with zero config; Jest-compatible globals so the existing test files port mechanically.
2020- ** Lint/format:** ESLint 9 flat config + ` typescript-eslint ` + Prettier. Prefer ` eslint --fix ` / ` prettier ` over manual style edits.
21- - ** CI:** GitHub Actions. Unit + lint on push/PR; integration job spins up ` @wordpress/env ` .
21+ - ** CI/CD :** GitHub Actions for everything (see the dedicated section below) .
2222- ** Version target:** finalize the alpha line as ** ` 2.0.0 ` ** .
2323- ** Docs:** deferred. Later phase replaces JSDoc/minami + Jekyll with ** TypeDoc** + a simple modern docs site.
2424
@@ -31,6 +31,25 @@ This plan sequences that work into independently-mergeable phases, each with a r
3131- Delegate mechanical conversion to cheaper agents; use ** Fable as a review gate** before a feature is considered solved.
3232- ** Never modify GitHub issues** — recommend only.
3333
34+ ## CI/CD: migrate all automation to GitHub Actions
35+
36+ Travis is dead and the docs/release flows are hand-run scripts. Move everything to
37+ GitHub Actions. Three workflows, landing across the phases they belong to:
38+
39+ - ** ` ci.yml ` ** (Phase 1) — on push/PR. Lint + typecheck + unit tests on a Node
40+ matrix (18/20/latest). A separate integration job boots ` @wordpress/env ` , runs
41+ ` npm run env:seed ` , then ` test:integration ` . Replaces ` .travis.yml ` .
42+ - ** ` docs.yml ` ** (Phase 6) — on push to ` main ` (or release tag). Builds the docs
43+ (TypeDoc + the new site) and deploys to GitHub Pages, replacing the manual
44+ ` build/scripts/release-docs.js ` → gh-pages flow.
45+ - ** ` release.yml ` ** (Phase 1 scaffold, wired when publishing resumes) — on a
46+ version tag / GitHub Release. Builds, tests, and ` npm publish ` with provenance,
47+ replacing the local ` release-npm ` script. Needs an ` NPM_TOKEN ` secret.
48+
49+ Keep workflows minimal and legible; use official actions (` actions/checkout ` ,
50+ ` actions/setup-node ` , ` actions/deploy-pages ` ). No third-party actions without a
51+ pinned SHA.
52+
3453---
3554
3655## Phase 0 — Baseline green + local env (regression net)
@@ -51,7 +70,7 @@ Swap infrastructure with no source-language change, so regressions are isolated
5170- Migrate Jest → Vitest; port test files.
5271- ESLint 9 flat + typescript-eslint + Prettier; run ` eslint --fix ` /` prettier ` to settle style.
5372- ` package.json ` : ` engines.node >=18 ` , remove ` browserslist ` /IE11, add ` exports ` /` module ` /` types ` .
54- - Add ` .github/workflows/ ` CI . Remove ` .travis.yml ` .
73+ - Stand up the ` ci.yml ` workflow (see CI/CD section) . Remove ` .travis.yml ` .
5574
5675** Verify:** full suite green under Vitest; ` npm run build ` emits ESM+CJS+UMD+` .d.ts ` ; CI green.
5776
0 commit comments