Skip to content

chore: bump actions to Node 24 compatible majors#27

Merged
SethPaul merged 1 commit into
mainfrom
chore/bump-actions-node24
Apr 21, 2026
Merged

chore: bump actions to Node 24 compatible majors#27
SethPaul merged 1 commit into
mainfrom
chore/bump-actions-node24

Conversation

@SethPaul
Copy link
Copy Markdown
Collaborator

@SethPaul SethPaul commented Apr 20, 2026

Summary

Addresses GitHub's Node 20 deprecation warning surfaced in downstream workflows (e.g. hipponot/iac#265 CI). Node 20 is being forced to Node 24 on June 2, 2026 and Node 20 is removed from runners entirely on September 16, 2026 per GitHub's changelog.

Changes

Bumps action versions across all reusable workflows:

Action Before After Why
actions/checkout @v4 @v5 v5 runs on Node 24
actions/setup-python @v5 @v6 v6 runs on Node 24 (v5 was the last Node 20 major)
actions/cache @v4 @v5 v5 runs on Node 24
actions/upload-artifact @v4.3.3 @v4 Tracks latest v4 patch; recent v4 patches support Node 24 without the v5+/v7 breaking changes to archive/ESM handling. Our usage (name + path only) would also work on v7, but staying on v4 keeps the diff minimal.

Files touched: pre-commit.yml, lambda_deploy.yml, lambda_pytest.yml, python_lint.yml, check_for_changes.yml.

All chosen versions are the lowest Node-24-compatible stable major to minimize breaking-change risk.

Runner compatibility

Confirmed: current GitHub-hosted ubuntu-latest runner is 2.333.1, which exceeds the 2.329.0+ requirement for these action versions.

Test plan

  • This PR's own CI run exercises check_for_changes and (indirectly) pre-commit via downstream repos — watch for Node 20 warnings.
  • After merge, the Node 20 deprecation warning should disappear from workflow runs in consumer repos (hipponot/iac, etc.).
  • Spot-check a consumer lambda_deploy and lambda_pytest run after merge to confirm artifact upload and Python setup still work as expected.

Summary by CodeRabbit

  • Chores
    • Updated continuous integration and deployment pipeline infrastructure with newer versions of automation tools to enhance reliability and security.

…atible majors Addresses GitHub's Node 20 deprecation warning (Node 20 runtime removed from runners Sept 16, 2026; forced to Node 24 June 2, 2026). Bumps across all reusable workflows (pre-commit, lambda_deploy, lambda_pytest, python_lint, check_for_changes): - actions/checkout@v4 -> @v5 - actions/setup-python@v5 -> @v6 - actions/cache@v4 -> @v5 - actions/upload-artifact@v4.3.3 -> @v4 (tracks latest v4 patch; recent v4 patches support Node 24 without upload-artifact's v5+ breaking changes to archive/ESM handling) All chosen majors are the lowest Node-24-compatible stable release, minimizing breaking-change risk. Our usage is simple (no archive: false, no name/compression tuning) so even a v7 upgrade would work; staying on v4 for upload-artifact keeps the diff minimal.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 20, 2026

Walkthrough

Updating GitHub Actions versions across all CI/CD workflows: actions/checkout v4→v5, actions/setup-python v5→v6, actions/cache v4→v5, and actions/upload-artifact v4.3.3→v4. No workflow logic or control flow changes.

Changes

Cohort / File(s) Summary
Core Action Upgrades
.github/workflows/check_for_changes.yml, lambda_deploy.yml, lambda_pytest.yml, pre-commit.yml, python_lint.yml
Upgraded actions/checkout from v4 to v5 and actions/setup-python from v5 to v6 across all workflows.
Caching Action Upgrade
.github/workflows/lambda_pytest.yml, pre-commit.yml
Upgraded actions/cache from v4 to v5.
Artifact Upload Adjustment
.github/workflows/lambda_deploy.yml
Simplified actions/upload-artifact from pinned v4.3.3 to v4.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately describes the main change: upgrading GitHub Actions to versions compatible with Node 24, which is the primary objective across all five modified workflow files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-actions-node24

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/lambda_deploy.yml (1)

119-123: ⚠️ Potential issue | 🔴 Critical

Use actions/upload-artifact@v6 or later for Node 24 support.

The latest v4 release (v4.6.0, January 2025) runs on Node 20 only and triggers deprecation warnings on Node 24. Node 24 support requires actions/upload-artifact@v6.0.0 or later, which was released in December 2025. Update to v6 or a later version to align with Node 24 requirements.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/lambda_deploy.yml around lines 119 - 123, Update the
GitHub Actions step that uses actions/upload-artifact@v4 to
actions/upload-artifact@v6 (or a later compatible tag) so the workflow supports
Node 24; keep the conditional (if: (steps.get_packaged.outcome!='success')) and
the with fields (name: sam_template_${{steps.file_hash.outputs.file_hash}} and
path: ${{inputs.app_path_prefix}}/${{inputs.app_path}}/packaged.yaml) unchanged
while only changing the action reference from actions/upload-artifact@v4 to
actions/upload-artifact@v6+.
🧹 Nitpick comments (1)
.github/workflows/lambda_pytest.yml (1)

78-88: Consider using the built-in cache parameter in actions/setup-python@v6.

The current manual caching approach with actions/cache@v5 is compatible with setup-python@v6, but v6 now supports a native cache: 'pip' parameter in the action itself. This is the recommended pattern and simplifies the workflow.

Instead of:

- uses: actions/setup-python@v6
  with:
    python-version: ${{ inputs.python_version }}
- uses: actions/cache@v5
  with:
    path: ~/.cache/pip
    key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}

Use:

- uses: actions/setup-python@v6
  with:
    python-version: ${{ inputs.python_version }}
    cache: 'pip'
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/lambda_pytest.yml around lines 78 - 88, Replace the manual
pip cache step with setup-python's native cache option: remove the separate
actions/cache@v5 step (the job step with id: cache-pip) and instead add cache:
'pip' to the existing uses: actions/setup-python@v6 with block that sets
python-version: ${{ inputs.python_version }}; ensure the workflow no longer
references the removed cache step and rely on setup-python@v6 to handle pip
caching.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In @.github/workflows/lambda_deploy.yml:
- Around line 119-123: Update the GitHub Actions step that uses
actions/upload-artifact@v4 to actions/upload-artifact@v6 (or a later compatible
tag) so the workflow supports Node 24; keep the conditional (if:
(steps.get_packaged.outcome!='success')) and the with fields (name:
sam_template_${{steps.file_hash.outputs.file_hash}} and path:
${{inputs.app_path_prefix}}/${{inputs.app_path}}/packaged.yaml) unchanged while
only changing the action reference from actions/upload-artifact@v4 to
actions/upload-artifact@v6+.

---

Nitpick comments:
In @.github/workflows/lambda_pytest.yml:
- Around line 78-88: Replace the manual pip cache step with setup-python's
native cache option: remove the separate actions/cache@v5 step (the job step
with id: cache-pip) and instead add cache: 'pip' to the existing uses:
actions/setup-python@v6 with block that sets python-version: ${{
inputs.python_version }}; ensure the workflow no longer references the removed
cache step and rely on setup-python@v6 to handle pip caching.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 53203581-da63-4b97-bd40-9e87f401af61

📥 Commits

Reviewing files that changed from the base of the PR and between 9a10fb7 and 94689b1.

📒 Files selected for processing (5)
  • .github/workflows/check_for_changes.yml
  • .github/workflows/lambda_deploy.yml
  • .github/workflows/lambda_pytest.yml
  • .github/workflows/pre-commit.yml
  • .github/workflows/python_lint.yml

@SethPaul SethPaul merged commit 2c58abe into main Apr 21, 2026
2 checks passed
@SethPaul SethPaul deleted the chore/bump-actions-node24 branch April 21, 2026 16:21
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.

1 participant