Commit f8c9838
committed
feat!: v4 action
Upgrade every dependency to its latest major version and modernize the
entire build, test, and lint toolchain to match. All @actions/* packages
have moved to pure ESM in their v3+ releases, which required replacing
the bundler, test runner, and linter.
BREAKING CHANGE: action now runs on `node24` (was `node20`).
Dependencies (major version bumps):
- @actions/core 1.11.1 → 3.0.0
- @actions/exec 1.1.1 → 3.0.0
- @actions/github 6.0.1 → 9.0.0
- @actions/http-client 3.0.0 → 4.0.0
- @actions/io 2.0.0 → 3.0.2
- @actions/tool-cache 2.0.2 → 4.0.0
- @actions/cache 4.1.0 → 6.0.0
- octokit 3.1.1 → 5.0.5
- @commitlint/cli 19.8.1 → 20.5.0
- @types/node 24.10.0 → 25.5.0
- typescript 6.0.2 (unchanged, already latest)
Bundler: @vercel/ncc → Bun's built-in bundler
- ncc cannot resolve ESM-only exports fields (vercel/ncc#1311)
- `bun build` bundles 216 modules in ~15 ms
- Output is ESM (`"type": "module"` added to package.json)
Test runner: Jest → Bun test
- Bun's runtime handles ESM natively; no custom resolver needed
- Tests use `mock.module()` from `bun:test` for @actions/* ESM mocks
- Removed jest, ts-jest, @jest/globals, @types/jest, jest-sonar-reporter,
make-coverage-badge, and the custom `.dev/jest-resolver.js`
- Added `bunfig.toml` for test preload and coverage config
Formatter: Prettier → Biome
- `biome format` replaces `prettier --write`
- Config in `biome.json` matches previous style (no semis, single quotes,
trailing-comma none, 80-col width)
Linter: ESLint → oxlint
- ESLint 10 removed `.eslintrc` support; `eslint-plugin-github` only
supports ESLint ≤9 with no newer release available
- Removed eslint, eslint-plugin-github, eslint-plugin-jest,
eslint-plugin-jsonc, eslint-plugin-prettier, prettier-eslint,
@typescript-eslint/eslint-plugin, @typescript-eslint/parser
Package manager: pnpm → Bun
- All scripts now use `bun run`
- Removed pinned `bun` devDependency (use system bun)
GHA runtime: node20 → node24
- `action.yml` updated to `using: node24`
- Engine field set to `>=24`
CDN URL fixes:
- Download base changed from `dist.elide.zip` to `elide.zip` (apex)
- Platform tags now map `darwin→macos` and `aarch64→arm64` for the CDN
(`cdnOs()` / `cdnArch()` helpers in releases.ts)
- Supports both Elide 1.0 (new R2 naming) and classic (legacy fallback)
Resilience:
- `postInstall()` now catches prewarm/info failures gracefully with a
debug message instead of failing the workflow
Docker:
- Added `Dockerfile` (node24-slim + bun) and `.dockerignore`
- `bun run test:docker` builds the image and runs build + tests inside it
Removed unused dependency: `which` (never imported; code uses
`@actions/io`'s `which` instead).
Signed-off-by: Sam Gammon <sam@elide.ventures>1 parent 65bf537 commit f8c9838
File tree
34 files changed
+1672
-4586
lines changed- .dev
- .github
- linters
- workflows
- __tests__
- dist
- src
34 files changed
+1672
-4586
lines changedThis file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
This file was deleted.
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | 26 | | |
32 | 27 | | |
33 | 28 | | |
34 | 29 | | |
35 | | - | |
36 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
37 | 36 | | |
38 | 37 | | |
39 | 38 | | |
40 | | - | |
41 | | - | |
| 39 | + | |
| 40 | + | |
42 | 41 | | |
43 | | - | |
44 | | - | |
| 42 | + | |
| 43 | + | |
45 | 44 | | |
46 | | - | |
47 | | - | |
48 | | - | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
49 | 48 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
66 | 52 | | |
67 | 53 | | |
68 | 54 | | |
| |||
98 | 84 | | |
99 | 85 | | |
100 | 86 | | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
100 | 104 | | |
101 | 105 | | |
102 | 106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
0 commit comments