Skip to content

⬆️(ci) upgrade GitHub Actions workflow steps to latest versions#63

Open
StephanMeijer wants to merge 1 commit intosuitenumerique:mainfrom
StephanMeijer:feature/github-workflow-steps-update
Open

⬆️(ci) upgrade GitHub Actions workflow steps to latest versions#63
StephanMeijer wants to merge 1 commit intosuitenumerique:mainfrom
StephanMeijer:feature/github-workflow-steps-update

Conversation

@StephanMeijer
Copy link

@StephanMeijer StephanMeijer commented Feb 19, 2026

Purpose / Proposal

I was looking into adding Docker build support for linux/arm64 in several repositories of https://github.com/suitenumerique. During that, I noticed several repositories have outdated GitHub Workflow steps. This pull request has the purpose to update them.

External contributions

  • I have read and followed the contributing guidelines
  • I have read and agreed to the Code of Conduct
  • I have signed off my commits with git commit --signoff (DCO compliance)
  • I have signed my commits with my SSH or GPG key (git commit -S)
  • My commit messages follow the required format: <gitmoji>(type) title description
  • I have added a changelog entry under ## [Unreleased] section (if noticeable change)
  • I have added corresponding tests for new features or bug fixes (if applicable)

Testing happens when GitHub Workflows are being executed.


The creation of this pull request was done semi-automatically. I did automate a bunch, but I reviewed all changes manually to check if they are backwards compatible.

Summary by CodeRabbit

  • Chores
    • Updated GitHub Actions runner and Docker build tool versions to latest stable releases across all continuous integration and deployment workflows. Enhanced cache recovery mechanisms in build pipelines. These updates improve build compatibility, security, and overall pipeline reliability while maintaining existing functionality.

Update all GitHub Actions to their latest major versions for improved
performance, security patches, and Node.js runtime compatibility.

Signed-off-by: Stephan Meijer <me@stephanmeijer.com>
@coderabbitai
Copy link

coderabbitai bot commented Feb 19, 2026

📝 Walkthrough

Walkthrough

This PR upgrades GitHub Actions workflow action versions across six CI/CD workflow files from older major versions to newer versions (e.g., v2→v3, v3→v6, v4→v6). No changes to workflow logic, control flow, or behavior beyond updated tool executables.

Changes

Cohort / File(s) Summary
Docker Build Workflows
.github/workflows/build-and-push-docker-base-image.yml, .github/workflows/build-and-push-docker-image-dev.yml, .github/workflows/build-and-push-docker-image.yml
Updated actions/checkout (v4→v6), docker/setup-qemu-action (v2→v3), docker/setup-buildx-action (v2→v3), docker/login-action (v2→v3), and docker/build-push-action (v4→v6). The third file also updates actions/github-script (v6→v8).
Release and Test Workflows
.github/workflows/build-and-push-release-package.yml, .github/workflows/build-and-test.yml, .github/workflows/lint.yml
Updated actions/checkout (v3/v4→v6), actions/setup-node (v3/v4→v6), actions/cache (v3→v5), and actions/postgresql-action (v5→v8). The build-and-test workflow also adds restore-keys configuration to the cache step.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 Actions hop to newer ground,
Version bumps all around!
From v2 to v3 they spring,
Fresh workflows, what joy they bring!
CI pipes dance, clean and bright,

🚥 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 title accurately describes the main purpose of the PR: upgrading GitHub Actions workflow steps to latest versions, which aligns with the file changes across six 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
  • Post copyable unit tests in a comment

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.

@StephanMeijer
Copy link
Author

This PR relates to other PR's:

Project Pull Request
suitenumerique/calc suitenumerique/calc#15
suitenumerique/conversations suitenumerique/conversations#297
suitenumerique/docs suitenumerique/docs#1902
suitenumerique/e2esdk suitenumerique/e2esdk#2
suitenumerique/find suitenumerique/find#55
suitenumerique/projects #63
suitenumerique/meet suitenumerique/meet#984
suitenumerique/meet-whisperx suitenumerique/meet-whisperx#27
suitenumerique/meet-kyutai-moshi-stt suitenumerique/meet-kyutai-moshi-stt#3
suitenumerique/hackdays suitenumerique/hackdays#3
suitenumerique/people suitenumerique/people#1072
suitenumerique/django-lasuite suitenumerique/django-lasuite#63
suitenumerique/ui-kit suitenumerique/ui-kit#172
suitenumerique/messages suitenumerique/messages#555
suitenumerique/drive suitenumerique/drive#552
suitenumerique/st-deploycenter suitenumerique/st-deploycenter#39
suitenumerique/st-home suitenumerique/st-home#54
suitenumerique/hackdays2025 suitenumerique/hackdays2025#202

@StephanMeijer
Copy link
Author

StephanMeijer commented Feb 19, 2026

✅ I manually reviewed this PR and it should work just fine.

Copy link

@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.

Actionable comments posted: 1

🧹 Nitpick comments (3)
.github/workflows/build-and-push-docker-image-dev.yml (1)

20-20: Consider pinning actions to full commit SHAs for supply-chain hardening

Mutable version tags (e.g., @v6) can be silently redirected to a new commit without any PR diff. Pinning every action to a verified commit SHA (e.g., actions/checkout@<sha>) prevents a compromised upstream tag from injecting malicious code into your runner, especially important on a self-hosted runner where persistent side-effects are possible.

Tools like Dependabot or pin-github-action can automate this.

Also applies to: 23-23, 26-26, 29-29, 37-37, 44-44

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

In @.github/workflows/build-and-push-docker-image-dev.yml at line 20, Replace
mutable action tags with immutable pinned commit SHAs: find every "uses:
actions/checkout@v6" and other "uses: <owner>/<repo>@<version>" lines in this
workflow (the occurrences flagged around lines 20, 23, 26, 29, 37, 44) and
change them to the corresponding full commit SHA form (e.g.,
actions/checkout@<full-sha>); update each action reference consistently, ideally
using verified SHAs from the action repos or via a tool like
Dependabot/pin-github-action, and ensure the workflow still functions after
pinning by testing the workflow run.
.github/workflows/build-and-push-docker-image.yml (1)

36-36: docker/metadata-action was not upgraded — intentional?

All other docker/* actions in this file were bumped to their latest versions, but docker/metadata-action remains at v5. If this was intentionally left out, no action needed; otherwise consider bumping it alongside the rest.

♻️ Proposed version bump
-        uses: docker/metadata-action@v5
+        uses: docker/metadata-action@v6
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/build-and-push-docker-image.yml at line 36, The workflow
line using the docker metadata action is pinned to "uses:
docker/metadata-action@v5" while other docker/* actions were updated; change the
pin to the current recommended tag (bump from v5 to the latest stable major like
v6 or the same pattern used for the other docker actions), update the workflow
entry "uses: docker/metadata-action@v5" accordingly, and run/validate the CI
workflow to ensure metadata generation still works with the new version.
.github/workflows/build-and-push-release-package.yml (1)

15-15: Node.js 18 is EOL — consider upgrading to an LTS version.

Node 18 reached end-of-life in April 2025. While pre-existing and outside this PR's scope, it's a good time to upgrade to Node 20 or 22 (active LTS) since you're already touching this file.

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

In @.github/workflows/build-and-push-release-package.yml at line 15, The
workflow currently pins the GitHub Actions runner to Node via the YAML key
node-version: '18', which is EOL; update that value to a supported LTS (e.g.,
'20' or '22') in the workflow step that uses setup-node (replace node-version:
'18' with node-version: '20' or '22'), then run the CI to verify no toolchain or
dependency compatibility issues and adjust any npm/node-related commands if
failures surface.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/build-and-push-docker-image-dev.yml:
- Line 17: The workflow currently sets runs-on: self-hosted while using
actions/checkout@v6 which requires runner v2.327.1+; before merging, verify the
self-hosted runner meets that minimum by running ./run.sh --version on the
runner and, if it is older, either upgrade the runner to v2.327.1+ or change the
workflow to use a GitHub-hosted runner (e.g., ubuntu-latest) or pin checkout to
a compatible older action version; ensure you document the chosen approach in
the PR so CI will not fail at the Checkout step.

---

Nitpick comments:
In @.github/workflows/build-and-push-docker-image-dev.yml:
- Line 20: Replace mutable action tags with immutable pinned commit SHAs: find
every "uses: actions/checkout@v6" and other "uses: <owner>/<repo>@<version>"
lines in this workflow (the occurrences flagged around lines 20, 23, 26, 29, 37,
44) and change them to the corresponding full commit SHA form (e.g.,
actions/checkout@<full-sha>); update each action reference consistently, ideally
using verified SHAs from the action repos or via a tool like
Dependabot/pin-github-action, and ensure the workflow still functions after
pinning by testing the workflow run.

In @.github/workflows/build-and-push-docker-image.yml:
- Line 36: The workflow line using the docker metadata action is pinned to
"uses: docker/metadata-action@v5" while other docker/* actions were updated;
change the pin to the current recommended tag (bump from v5 to the latest stable
major like v6 or the same pattern used for the other docker actions), update the
workflow entry "uses: docker/metadata-action@v5" accordingly, and run/validate
the CI workflow to ensure metadata generation still works with the new version.

In @.github/workflows/build-and-push-release-package.yml:
- Line 15: The workflow currently pins the GitHub Actions runner to Node via the
YAML key node-version: '18', which is EOL; update that value to a supported LTS
(e.g., '20' or '22') in the workflow step that uses setup-node (replace
node-version: '18' with node-version: '20' or '22'), then run the CI to verify
no toolchain or dependency compatibility issues and adjust any npm/node-related
commands if failures surface.

@@ -17,16 +17,16 @@ jobs:
runs-on: self-hosted
Copy link

@coderabbitai coderabbitai bot Feb 19, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

❓ Verification inconclusive

Script executed:

#!/bin/bash
# Find all workflow files referencing self-hosted runners
echo "=== Workflows using self-hosted runners ==="
rg -n "self-hosted" --type yaml .github/workflows/ 2>/dev/null || echo "No matches found"

echo -e "\n=== All workflows in .github/workflows ==="
ls -la .github/workflows/ 2>/dev/null || echo "Directory not found"

echo -e "\n=== Check for runner setup/configuration scripts ==="
fd -e sh -e bash --type f . 2>/dev/null | xargs rg -l "node" 2>/dev/null | grep -E "(setup|bootstrap|runner|provision)" | head -10

echo -e "\n=== Check for documentation about runners ==="
fd -e md --type f . 2>/dev/null | xargs rg -l "self-hosted\|runner.*setup\|node.*version" 2>/dev/null | head -10

Repository: suitenumerique/projects


Repository: suitenumerique/projects
Exit code: 0

stdout:

=== Workflows using self-hosted runners ===
.github/workflows/build-and-push-docker-image.yml:9:    runs-on: self-hosted
.github/workflows/build-and-push-docker-image-dev.yml:17:    runs-on: self-hosted
.github/workflows/build-and-push-docker-base-image.yml:16:    runs-on: self-hosted

=== All workflows in .github/workflows ===
total 24
drwxr-xr-x 2 jailuser jailuser  160 Feb 19 18:41 .
drwxr-xr-x 4 jailuser jailuser   80 Feb 19 18:41 ..
-rw-r--r-- 1 jailuser jailuser 1113 Feb 19 18:41 build-and-push-docker-base-image.yml
-rw-r--r-- 1 jailuser jailuser 1350 Feb 19 18:41 build-and-push-docker-image-dev.yml
-rw-r--r-- 1 jailuser jailuser 1459 Feb 19 18:41 build-and-push-docker-image.yml
-rw-r--r-- 1 jailuser jailuser 1387 Feb 19 18:41 build-and-push-release-package.yml
-rw-r--r-- 1 jailuser jailuser 1877 Feb 19 18:41 build-and-test.yml
-rw-r--r-- 1 jailuser jailuser  675 Feb 19 18:41 lint.yml

=== Check for runner setup/configuration scripts ===

=== Check for documentation about runners ===

actions/checkout v6 Node.js version requirement


actions/checkout@v6 is a JavaScript action that runs on the node24 runtime (runs.using: node24). [1]

Because it uses the Node.js 24 runtime, your environment needs a GitHub Actions runner version that supports it—minimum Actions Runner v2.327.1. [2]

Additionally, if you run authenticated git commands from a Docker container action, checkout@v6 requires Actions Runner v2.329.0 or later. [2]

Sources:
[1] actions/checkout action.yml (v6) showing runs.using: node24 (raw.githubusercontent.com)
[2] actions/checkout README notes on Node.js 24 runtime + runner minimums (github.com)

Citations:


actions/checkout@v6 release date December 2025


actions/checkout had a v6 release in December 2025: v6.0.1, published December 2, 2025. [1]

(For context, the initial v6.0.0 release was November 20, 2025, i.e., not in December.) [1]

Sources: [1]


Confirm self-hosted runner is v2.327.1+ before merging

actions/checkout@v6 (released December 2, 2025) requires GitHub Actions Runner v2.327.1 or later, which is when Node.js 24 runtime support was added. Unlike GitHub-hosted runners that are automatically kept up to date, self-hosted runners (line 17) require manual provisioning. If the runner is older than v2.327.1, the workflow will fail at the Checkout step.

Verify the self-hosted runner version with: ./run.sh --version

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

In @.github/workflows/build-and-push-docker-image-dev.yml at line 17, The
workflow currently sets runs-on: self-hosted while using actions/checkout@v6
which requires runner v2.327.1+; before merging, verify the self-hosted runner
meets that minimum by running ./run.sh --version on the runner and, if it is
older, either upgrade the runner to v2.327.1+ or change the workflow to use a
GitHub-hosted runner (e.g., ubuntu-latest) or pin checkout to a compatible older
action version; ensure you document the chosen approach in the PR so CI will not
fail at the Checkout step.

Copy link
Author

Choose a reason for hiding this comment

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

Good bot 🤖

Copy link

Choose a reason for hiding this comment

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

@StephanMeijer Thank you for the positive feedback! I'm glad the review comment was helpful. If you need any assistance verifying the runner version or have questions about the workflow updates, feel free to let me know! 🐰

ヽ(✿゚▽゚)ノ ✨

@StephanMeijer
Copy link
Author

Rebased this branch on the latest target branch and force-pushed.

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