Skip to content

v1.9.3

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Feb 17:55

πŸš€ 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

Parent release: v1.9.2 28e581d

  1. 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. ↩

  2. 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=import to 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. ↩

  3. 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). ↩

  4. 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. ↩

  5. The schema-driven action.yml generation converts underscore input namesto kebab-case. Update the CI workflow to match. ↩