Skip to content

Upgrade GitHub Actions runtime from node12 to node22#10

Open
snomos wants to merge 4 commits intomasterfrom
upgrade-node-runtime
Open

Upgrade GitHub Actions runtime from node12 to node22#10
snomos wants to merge 4 commits intomasterfrom
upgrade-node-runtime

Conversation

@snomos
Copy link
Copy Markdown
Member

@snomos snomos commented Mar 13, 2026

Summary

This PR upgrades all GitHub Actions in this repository from the deprecated node12 runtime to node22.

Background

GitHub Actions using Node.js 12 or 16 are now deprecated. These actions were running on the ancient node12 runtime, which reached end-of-life in April 2022.

GitHub is deprecating old Node.js runtimes and recommending migration to Node.js 20 or 22. This PR upgrades directly to node22 (the latest supported version) to ensure long-term compatibility.

Changes

Updated the runs.using field in all 15 action.yml files from node12 to node22:

  • codesign/action.yml
  • create-txz/action.yml
  • deploy/action.yml
  • enable-languages/action.yml
  • inno-setup/action.yml
  • keyboard/build-meta/action.yml
  • keyboard/build/action.yml
  • keyboard/deploy/action.yml
  • lang/build/action.yml
  • lang/install-deps/action.yml
  • pahkat/init/action.yml
  • setup/action.yml
  • speller/bundle/action.yml
  • speller/deploy/action.yml
  • version/action.yml

Additionally improved error handling:

  • Use instanceof Error checks instead of type assertions
  • Preserve stack traces in error logging
  • Handle non-Error exceptions gracefully

Testing

The Node.js APIs used by these actions are stable across Node.js versions. The upgrade from 12 to 22 should not affect functionality, but the actions will now run on a supported runtime.

All TypeScript files have been recompiled and JavaScript output has been committed.

All action.yml files were using node12, which is deprecated. This upgrades all actions to use node22 to ensure compatibility with current GitHub Actions infrastructure and avoid deprecation warnings.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the JavaScript GitHub Action manifests in the repo to run on a newer Node.js runtime by changing runs.using from node12 to node22 across all local actions.

Changes:

  • Updated runs.using to node22 in 15 action.yml files.
  • No functional code changes included; manifest-only runtime bump.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
codesign/action.yml Switch JS action runtime to node22.
create-txz/action.yml Switch JS action runtime to node22.
deploy/action.yml Switch JS action runtime to node22.
enable-languages/action.yml Switch JS action runtime to node22.
inno-setup/action.yml Switch JS action runtime to node22.
keyboard/build-meta/action.yml Switch JS action runtime to node22.
keyboard/build/action.yml Switch JS action runtime to node22.
keyboard/deploy/action.yml Switch JS action runtime to node22.
lang/build/action.yml Switch JS action runtime to node22.
lang/install-deps/action.yml Switch JS action runtime to node22.
pahkat/init/action.yml Switch JS action runtime to node22.
setup/action.yml Switch JS action runtime to node22.
speller/bundle/action.yml Switch JS action runtime to node22.
speller/deploy/action.yml Switch JS action runtime to node22.
version/action.yml Switch JS action runtime to node22.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread version/action.yml
Comment thread version/action.yml Outdated
- Fix Promise<void> type error in codesign/index.ts
- Fix unknown error type assertions in setup and speller/deploy
- Fix type conversion in shared.ts debug statement
- Rebuild all JavaScript files with npm run build
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the repository’s custom JavaScript GitHub Actions to run on a newer Node runtime by changing the runs.using field in each action metadata file, alongside regenerated build artifacts and a few TypeScript adjustments.

Changes:

  • Update all affected action.yml files to use runs.using: 'node22'.
  • Regenerate multiple compiled JavaScript files (notably TS helper/emission changes).
  • Minor TypeScript-only tweaks (e.g., error handling typings, promise typing).

Reviewed changes

Copilot reviewed 37 out of 37 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
version/action.yml Switch action runtime to node22.
version/index.js Regenerated compiled JS output (helper changes).
speller/deploy/action.yml Switch action runtime to node22.
speller/deploy/index.ts TypeScript catch typing adjustment.
speller/deploy/index.js Regenerated compiled JS output (helper changes).
speller/bundle/action.yml Switch action runtime to node22.
speller/bundle/index.js Regenerated compiled JS output (helper changes).
speller/manifest.js Regenerated compiled JS output (helper/exports changes).
shared.ts Debug logging adjustment in catch block.
shared.js Regenerated compiled JS output reflecting shared.ts change.
setup/action.yml Switch action runtime to node22.
setup/index.ts TypeScript catch typing adjustment.
setup/index.js Regenerated compiled JS output (helper changes).
pahkat/init/action.yml Switch action runtime to node22.
pahkat/init/index.js Regenerated compiled JS output (helper changes).
lang/install-deps/action.yml Switch action runtime to node22.
lang/install-deps/index.js Regenerated compiled JS output (helper changes).
lang/build/action.yml Switch action runtime to node22.
keyboard/build-meta/action.yml Switch action runtime to node22.
keyboard/build-meta/index.js Regenerated compiled JS output (helper changes).
keyboard/build/action.yml Switch action runtime to node22.
keyboard/build/index.js Regenerated compiled JS output (helper changes).
keyboard/deploy/action.yml Switch action runtime to node22.
keyboard/deploy/index.js Regenerated compiled JS output (helper/exports changes).
keyboard/types.js Regenerated compiled JS output (helper/exports changes).
inno-setup/action.yml Switch action runtime to node22.
inno-setup/index.js Regenerated compiled JS output (helper changes).
inno-setup/lib.js Regenerated compiled JS output (helper/exports changes).
enable-languages/action.yml Switch action runtime to node22.
enable-languages/index.js Regenerated compiled JS output (helper changes).
deploy/action.yml Switch action runtime to node22.
deploy/index.js Regenerated compiled JS output (helper changes).
create-txz/action.yml Switch action runtime to node22.
create-txz/index.js Regenerated compiled JS output (helper changes).
codesign/action.yml Switch action runtime to node22.
codesign/index.ts TypeScript promise typing adjustment.
codesign/index.js Regenerated compiled JS output (helper changes).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread version/action.yml Outdated
Comment thread setup/index.ts Outdated
Comment thread speller/deploy/index.ts Outdated
Comment thread shared.ts Outdated
snomos and others added 2 commits March 13, 2026 10:24
- Use instanceof checks instead of type assertions for error objects
- Preserve stack traces in error logging (shared.ts)
- Handle non-Error exceptions gracefully with fallback to String()
- Rebuild all JavaScript files with improved error handling
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants