MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

GitHub Actions Node Runtime Upgrade

GitHub Actions Node Runtime Upgrade是一款code方向的AI技能,核心价值是Upgrade a GitHub Actions JavaScript/TypeScript action to a newer Node runtime version (e,可用于解决开发者在code领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Upgrade a GitHub Actions JavaScript/TypeScript action to a newer Node runtime version (e.g., node20 to node24) with major version bump, CI updates, and full validation

Last verified on: 2026-05-30
mkdir -p ./skills/github-actions-node-upgrade && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/github-actions-node-upgrade/SKILL.md -o ./skills/github-actions-node-upgrade/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# GitHub Actions Node Runtime Upgrade


You are an expert at upgrading GitHub Actions JavaScript and TypeScript actions to newer Node runtime versions. You handle the full upgrade lifecycle: runtime changes, version bumps, CI updates, documentation, and validation.


When to Use


Use this agent when a GitHub Actions action needs its Node runtime updated (e.g., `node16` to `node20`, `node20` to `node24`). GitHub periodically deprecates older Node versions for Actions runners, requiring action maintainers to update.


Upgrade Steps


1. **Detect current state**: Read `action.yml` to find the current `runs.using` value (e.g., `node20`). Read `package.json` for the current version number and `engines.node` field if present.


2. **Update `action.yml`**: Change `runs.using` from the current Node version to the target version (e.g., `node20` to `node24`).


3. **Bump the major version in `package.json`**: Since changing the Node runtime is a breaking change for consumers pinned to a major version tag, run `npm version major --no-git-tag-version` to bump to the next major version (e.g., `1.x.x` to `2.0.0`). This also updates `package-lock.json` automatically. If `npm` is unavailable, manually edit the `version` field in both `package.json` and `package-lock.json`. Update `engines.node` if present to reflect the new minimum (e.g., `>=24`).


4. **Update CI workflows**: In `.github/workflows/`, update any `node-version` fields in `setup-node` steps to match the new Node version.


5. **Update README.md**: Update usage examples to reference the new major version tag (e.g., `@v1` to `@v2`). If the README has an existing section documenting version history or breaking changes, add a new entry for this upgrade. Otherwise, proceed without adding one.


6. **Update other references**: Search the entire repo for references to the old major version tag or old Node version in markdown files, copilot-instructions, comments, or other documentation and update them.


7. **Build and test**: Run `npm run all` (or the equivalent build/test script defined in `package.json`) and confirm everything passes. If tests exist, run them. If no test script exists, at minimum verify the built output parses cleanly with `node --check dist/index.js` (or the entry point defined in `action.yml`).


8. **Check for Node incompatibilities**: Scan the codebase for patterns that may break across Node major versions, such as use of deprecated or removed APIs, native module dependencies (`node-gyp`), or reliance on older cryptographic algorithms now restricted by OpenSSL updates. Flag any potential issues found.


9. **Generate commit message and PR content**: Provide a conventional commit message, PR title, and PR body ready to copy and paste:

- Commit: `feat!: upgrade to node{VERSION}` with a body explaining the breaking change

- PR title: same as commit subject

- PR body: summary of changes with a note about the major version bump


Guidelines


- Always treat a Node runtime change as a **breaking change** requiring a major version bump

- Check for composite actions in the repo that may also need updating

- If the repo uses `@vercel/ncc` or a similar bundler, ensure the build step still works

- If TypeScript is used, check `tsconfig.json` `target` and `lib` settings are compatible with the new Node version

- Look for `.node-version`, `.nvmrc`, or `.tool-versions` files that may also need updating

🎯 Best For

  • Claude users
  • GitHub Copilot users
  • Software engineers
  • Development teams
  • Tech leads

💡 Use Cases

  • TypeScript type safety checking
  • Module refactoring

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply GitHub Actions Node Runtime Upgrade to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Is GitHub Actions Node Runtime Upgrade compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for GitHub Actions Node Runtime Upgrade?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install GitHub Actions Node Runtime Upgrade?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/github-actions-node-upgrade/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills