Skip to content

build(workflows): upgrade GitHub Actions for Node 24 compatibility#914

Merged
WilliamBerryiii merged 4 commits intomicrosoft:mainfrom
salmanmkc:upgrade-github-actions-node24
Mar 8, 2026
Merged

build(workflows): upgrade GitHub Actions for Node 24 compatibility#914
WilliamBerryiii merged 4 commits intomicrosoft:mainfrom
salmanmkc:upgrade-github-actions-node24

Conversation

@salmanmkc
Copy link
Copy Markdown
Contributor

@salmanmkc salmanmkc commented Mar 6, 2026

Pull Request

Description

Upgrade GitHub Actions to their latest versions to ensure compatibility with Node 24, as Node 20 will reach end-of-life in April 2026.

Action Old Version(s) New Version Release Files
actions/setup-node 6044e13 53b8394 Release copilot-setup-steps.yml, deploy-docs.yml, docusaurus-tests.yml, extension-marketplace-publish.yml, extension-package.yml, markdown-link-check.yml, markdown-lint.yml, plugin-package.yml, plugin-validation.yml, pr-validation.yml, release-prerelease-pr.yml, spell-check.yml, table-format.yml

Per GitHub's announcement, Node 20 is being deprecated and runners will begin using Node 24 by default starting June 2nd, 2026.

Why this matters

  • Node 20 EOL: April 2026
  • Node 24 default: June 2nd, 2026
  • Action: Update to latest action versions that support Node 24

Breaking Changes

  • actions/setup-node (v4.1.0 → v6): Major version upgrade — review the release notes for breaking changes
    • Input always-auth was removed — if your workflow uses it, the step may fail

Security Note

Actions that were previously pinned to commit SHAs remain pinned to SHAs (updated to the latest release SHA) to maintain the security benefits of immutable references.

Related Issue(s)

Closes #915

Type of Change

Select all that apply:

Code & Documentation:

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature causing existing functionality to change)
  • Documentation update

Infrastructure & Configuration:

  • GitHub Actions workflow
  • Linting configuration (markdown, PowerShell, etc.)
  • Security configuration
  • DevContainer configuration
  • Dependency update

AI Artifacts:

  • Reviewed contribution with prompt-builder agent and addressed all feedback
  • Copilot instructions (.github/instructions/*.instructions.md)
  • Copilot prompt (.github/prompts/*.prompt.md)
  • Copilot agent (.github/agents/*.agent.md)
  • Copilot skill (.github/skills/*/SKILL.md)

Other:

  • Script/automation (.ps1, .sh, .py)
  • Other (please describe):

Testing

These changes only affect CI/CD workflow configurations and should not impact application functionality. The workflows should be tested by running them on a branch before merging.

Checklist

Required Checks

  • Documentation is updated (if applicable)
  • Files follow existing naming conventions
  • Changes are backwards compatible (if applicable)
  • Tests added for new functionality (if applicable)

Required Automated Checks

The following validation commands must pass before merging:

  • Markdown linting: npm run lint:md
  • Spell checking: npm run spell-check
  • Frontmatter validation: npm run lint:frontmatter
  • Skill structure validation: npm run validate:skills
  • Link validation: npm run lint:md-links
  • PowerShell analysis: npm run lint:ps
  • Plugin freshness: npm run plugin:generate

Security Considerations

  • This PR does not contain any sensitive or NDA information
  • Any new dependencies have been reviewed for security issues
  • Security-related scripts follow the principle of least privilege

Additional Notes

Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
@salmanmkc salmanmkc requested a review from a team as a code owner March 6, 2026 09:15
@katriendg
Copy link
Copy Markdown
Contributor

@salmanmkc — thank you so much for this contribution! 🙏

We appreciate the work here, and there's something extra special about receiving a CI hygiene fix from someone right at the source, having you proactively track the Node 20 deprecation timeline and get this in ahead of the June 2026 runner switch, neat!

A couple of items before we can merge:

  1. Issue first: per our contribution guidelines, every PR should be linked to a tracking issue. We've already created it and please link chore(ci): track Node 20 deprecation and upgrade GitHub Actions to Node 24-compatible versions #915 to your PR.

  2. PR title: to match our conventional commit convention, we'd suggest updating the title to:

    
    chore(ci): upgrade actions/setup-node to v6 for Node 24 compatibility
    
    
  3. PR body — Please use the /pull-request prompt in Copilot to generate a template-compliant PR description, and make sure to include the new issue number in the "Related Issue(s)" section.

  4. One additional code change — we've already created the tracking issue for you (linked above), and while reviewing we spotted a prerequisite that needs to land alongside the workflow changes: scripts/security/Update-ActionSHAPinning.ps1 contains a hardcoded $ActionSHAMap that maps floating version tags to pinned SHAs for tool-driven updates. It currently has entries for @v3 and @v4 but no @v6 entry. Without it, future runs of the script against these workflows will emit a "not found — add to ActionSHAMap" warning and skip auto-pinning for v6. Please add:

    "actions/setup-node@v6" = "actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f" # v6

    just above the existing @v4 line in that map.

Automated checks, once the above are in place, please ensure the standard validation suite passes (npm run lint:all). Given it's pure YAML changes these should be quick.

Thanks again, great to have this come from someone at GitHub! 🎉

@WilliamBerryiii WilliamBerryiii changed the title Upgrade GitHub Actions for Node 24 compatibility build(workflows): upgrade GitHub Actions for Node 24 compatibility Mar 7, 2026
@WilliamBerryiii
Copy link
Copy Markdown
Member

Thank you for this contribution, @salmanmkc! Your changes to upgrade GitHub Actions for Node 24 compatibility improve our CI pipeline reliability. We appreciate the effort.

We've made a couple of updates to align with project conventions:

  • Title: Updated to Conventional Commits format: build(workflows): upgrade GitHub Actions for Node 24 compatibility
  • Description: Restructured the PR description to use the repository's standard PR template (Description, Related Issues, Type of Change, Testing, Checklist, and Security Considerations)

No action needed on your end. If you have questions about any of the changes, feel free to comment here.

WilliamBerryiii and others added 3 commits March 6, 2026 20:51
…SHAMap

- fix double-space before SHA comments in 13 workflow files
- add v6 entry for actions/setup-node in ActionSHAMap
- reduce ActionSHAMap from ~48 to 21 entries covering only current versions

🔧 - Generated by Copilot
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.86%. Comparing base (2a4bd39) to head (9af30c0).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #914      +/-   ##
==========================================
- Coverage   85.95%   85.86%   -0.09%     
==========================================
  Files          27       27              
  Lines        5185     5152      -33     
==========================================
- Hits         4457     4424      -33     
  Misses        728      728              
Flag Coverage Δ
pester 85.86% <100.00%> (-0.09%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
scripts/security/Update-ActionSHAPinning.ps1 71.46% <100.00%> (-2.20%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@WilliamBerryiii WilliamBerryiii merged commit 7ed2d4c into microsoft:main Mar 8, 2026
24 checks passed
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.

chore(ci): track Node 20 deprecation and upgrade GitHub Actions to Node 24-compatible versions

4 participants