Skip to content

Commit 4113576

Browse files
kadamwhiteclaude
andcommitted
plan: make the GitHub Actions migration explicit
Call out moving all automation to GitHub Actions as a first-class concern: ci.yml (phase 1), docs.yml deploy (phase 6), and release.yml publish. Replaces Travis and the hand-run docs/release scripts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 9480518 commit 4113576

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

modernization-execution-plan.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)