π Features
New features and additions
- β¨ gh-inputs: Filter comments and blank lines in multiline inputs. 4137715
π Fixes
Bug fixes and error corrections
- boost-clone: Scan patch module dependencies during submodule init. (fix #28) 9e8a1bb
- b2-workflow: Broadcast module-target to every module instead of positional mapping. (fix #26) f72b80d (thanks @ashtum)
β»οΈ Refactor
Code refactoring and restructuring
- Modularize long files across all actions and common packages. 091785a
- Schema-driven action definitions with single source of truth.1 fb6761d
π¦οΈ Build
Build system and configuration changes
- Support ESM-only @actions/* v3 packages.2 58a1b2f
- Simplify npm scripts and split build utility.3 7a6f90c
π¦ Continuous Integration
Changes related to continuous integration
- Developer workflow tests and fix workspace build order.4 ec66209
- Check dist bundles against fresh build instead of git history. 0788de7
- Use kebab-case input names for flamegraph and create-changelog.5 d408338
- Use underscore for github_token input in peaceiris/actions-gh-pages. 4ce1e29
ποΈ Chores
Routine tasks, maintenance, and housekeeping
- Bump version to 1.9.3. 5d97986
-
Introduce common/action-schema package that lets each action define inputsand outputs once in a schema.ts file, then derives TypeScript types, runtimeparsing, and action.yml generation from it.- Add action-schema library: types, parser, runner, shared schemas, and action.yml generator- Add schema.ts to all 13 actions, replacing manual input extraction- Wire action.yml generation into npm build pipeline- Add CI checks that fail on stale action.yml or dist/ files- Deduplicate compiler prefix removal, setup inputs, and compiler outputs via shared helpers (createSetupInputs, createCompilerOutputs, createCompilerPrefixRemover)- Auto-discover schema actions instead of hardcoded list. β©
-
The new @actions/* v3/v4 packages are ESM-only ("type": "module",exports only has "import" condition). This breaks the CJS-based buildpipeline (tsc β esbuild), Jest test runner, and Node.js scripts thatresolve these packages.- Add
conditions: ['import']to esbuild config so bundling resolves ESM export conditions- Add--conditions=importto the update-action-ymls Node.js script- Add custom Jest resolver (jest-resolver.js) for @actions/* packages- Configure Jest to transform ESM node_modules with ts-jest (allowJs)- Bump @actions/core, exec, io, http-client, tool-cache, cache, and artifact to v3/v4 across all workspaces. β© -
Replace the monolithic build orchestrator with direct npm scripts.Each script does one thing:- prepare/build: compile all workspaces (via npm run build --workspaces)- test: jest- lint: jsdoc-linter (renamed from lint:jsdoc)- docs: generate documentation (new utils/docs package)- update-data: fetch compiler tags and version data (new utils/update-data package)- validate: update-data + build + test + lintOther changes:- Rename workspace "all" script to "build" (tsc + esbuild in one step)- Reorder workspaces array by dependency order- Remove prepare:foundation/prepare:actions (replaced by --workspaces)- Split utils/build into utils/update-data and utils/docs- Delete dead code: prepare.ts, test.ts, lint.ts, workspace.ts, cli.ts- Add @throws JSDoc to fix lint warnings in setup-program and cmake-workflow- Update CI to run lint step- Update contribute.adoc (scripts reference, project structure, esbuild). β©
-
The prepare script now builds packages in dependency order:1. Utils/esbuild (no deps)2. Common/trace-commands, gh-inputs, pretty-errors (pretty-errors needs trace-commands)3. Utils packages4. Action packages in dependency order (setup-program first, then dependents)This fixes "Cannot find module" errors on fresh clones where npm wasrunning workspace prepare scripts in parallel without respectingdependencies.Added dev-workflow CI job that tests npm install/build/test on allplatforms, blocking the main build matrix if it fails. β©
-
The schema-driven action.yml generation converts underscore input namesto kebab-case. Update the CI workflow to match. β©