Skip to content

Bump all workflow actions to a more recent version#7144

Closed
Garanas wants to merge 1 commit into
developfrom
chore/update-workflow-actions
Closed

Bump all workflow actions to a more recent version#7144
Garanas wants to merge 1 commit into
developfrom
chore/update-workflow-actions

Conversation

@Garanas

@Garanas Garanas commented Jun 20, 2026

Copy link
Copy Markdown
Member

Description of the proposed changes

Update remaining workflow actions. Recently the syntax-check workflow started to fail, see also:

Fixed with:

Then we ran into this:

Testing done on the proposed changes

Unfortunately it is not really possible to test workflows locally.

Summary by CodeRabbit

  • Chores
    • Updated GitHub Actions across all CI/CD workflows to latest stable versions, including checkout utilities, artifact management, environment setup, and deployment tools, for improved security and reliability.

@github-actions github-actions Bot marked this pull request as draft June 20, 2026 16:41
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

All 18 GitHub Actions workflow files are updated to use newer major versions of standard actions: actions/checkout bumped to v7, actions/download-artifact to v6, actions/upload-artifact to v7, actions/configure-pages to v6, actions/upload-pages-artifact to v5, actions/deploy-pages to v5, actions/setup-python to v6, actions/github-script to v9, and leafo/gh-actions-lua to v13. No workflow logic changes.

Changes

GitHub Actions version bumps

Layer / File(s) Summary
actions/checkout, download-artifact, upload-artifact, and misc version bumps
.github/workflows/tests.yaml, .github/workflows/deploy-faf.yaml, .github/workflows/deploy-fafbeta.yaml, .github/workflows/deploy-fafdevelop.yaml, .github/workflows/stage-fafbeta.yaml, .github/workflows/stage-fafdevelop.yaml, .github/workflows/spookydb-update.yaml, .github/workflows/etfreeman-db-update.yaml, .github/workflows/prepare-release.yaml, .github/workflows/docs-build.yml, .github/workflows/docs-convert-changelog.yaml, .github/workflows/docs-generate-changelog.yaml, .github/workflows/docs-spelling-check.yaml, .github/workflows/docs-synchronize-changelog.yaml, .github/workflows/docs-url-check.yaml, .github/workflows/bake-blueprints.yaml, .github/workflows/wiki-generate-blueprints.yaml, .github/workflows/wiki-generate-changelogs.yaml, .github/workflows/wiki-generate-icons.yaml
actions/checkout bumped to v7, actions/download-artifact to v6, actions/upload-artifact to v7, actions/configure-pages to v6, actions/upload-pages-artifact to v5, actions/deploy-pages to v5, actions/setup-python to v6, actions/github-script to v9, and leafo/gh-actions-lua to v13 across all workflows. No logic changes.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

  • FAForever/fa#7005: Modifies .github/workflows/etfreeman-db-update.yaml, the same workflow file where this PR bumps actions/checkout and actions/download-artifact versions.

Suggested reviewers

  • lL1l1

Poem

🐇 Hop, hop, hooray for versions new!
The actions all got bumped right through,
From v4 to v7 we leap and bound,
No logic changed, just upgrades found,
The rabbit cheers for workflows bright,
All fresh and updated, running right! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The description explains the motivation (workflow failures) and references fixes, but lacks detailed testing information and changelog documentation per the template requirements. Add changelog snippet documentation following repository guidelines and clarify how the action version updates resolve the underlying workflow issues referenced.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely describes the main change: updating workflow actions to recent versions across multiple workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ 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/update-workflow-actions

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 8

🧹 Nitpick comments (2)
.github/workflows/docs-build.yml (1)

74-74: Actions use mutable tags instead of SHA pins—consider using explicit commit SHAs for better supply chain security.

These action references (lines 74, 89, 96, 129, 139, 152) still use major version tags (@v*) rather than full commit SHAs, which means the pinned versions could change at runtime if the upstream action releases updates. While tag-based references are simpler to maintain, pinning to explicit SHAs reduces the risk of unexpected behavior changes from upstream action updates.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/docs-build.yml at line 74, Replace the mutable action
version tags with immutable commit SHA pins for improved supply chain security.
In the docs-build.yml workflow file, update all action references currently
using `@v`* tags (specifically actions/checkout@v7 and others mentioned at lines
74, 89, 96, 129, 139, 152) to use their full commit SHA format instead. For
example, change actions/checkout@v7 to actions/checkout@<full-commit-sha> where
the SHA corresponds to the specific version you want to use. This ensures the
pinned versions cannot change unexpectedly at runtime.

Source: Linters/SAST tools

.github/workflows/wiki-generate-icons.yaml (1)

61-61: ⚡ Quick win

Update inline comments to reference v7 documentation.

The comments reference v4 documentation but the workflow now uses v7 of the action.

📝 Proposed fix to update documentation links
-        # https://github.com/actions/upload-artifact/tree/v4/
+        # https://github.com/actions/upload-artifact/tree/v7/
         - name: Upload unit icons
           uses: actions/upload-artifact@v7

-        # https://github.com/actions/upload-artifact/tree/v4/
+        # https://github.com/actions/upload-artifact/tree/v7/
         - name: Upload strategic icons
           uses: actions/upload-artifact@v7

Also applies to: 68-68

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/wiki-generate-icons.yaml at line 61, The inline comments
in the workflow file reference v4 documentation for the upload-artifact action
but the workflow is currently using v7 of that action. Update all comments that
contain URLs pointing to the upload-artifact action documentation to reference
v7 instead of v4. Specifically, change any comment URLs containing
"upload-artifact/tree/v4" to "upload-artifact/tree/v7" to ensure documentation
links remain accurate and consistent with the action version being used.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/bake-blueprints.yaml:
- Line 60: The workflow file uses mutable version tags for action references
instead of immutable commit SHAs, which creates supply-chain risk. Find the
three action references on lines 60, 67, and 79 (actions/checkout@v7 and other
actions with `@v13` tags) and replace each mutable version tag with the full
commit SHA of the desired version. For example, replace actions/checkout@v7 with
the format actions/checkout@<full-commit-hash> where the commit hash is the
specific immutable identifier for that action version.

In @.github/workflows/deploy-fafbeta.yaml:
- Line 99: The actions/download-artifact action in the deploy-fafbeta.yaml
workflow is using version v6, which is outdated. Upgrade the version
specification in the uses statement for actions/download-artifact from v6 to v8
(the latest stable release v8.0.1). Before upgrading, review the changelog
between v6 and v8 to check for any breaking changes that might affect the
workflow, and document the upgrade decision in case compatibility was a concern.

In @.github/workflows/docs-convert-changelog.yaml:
- Line 44: Replace all mutable version tag references in the actions/checkout
and other workflow action uses statements with pinned commit digest format.
Specifically, for the affected uses statements at the identified lines, replace
the version tag (e.g., `@v7`, `@v6`) with the corresponding commit SHA to ensure
reproducibility and supply-chain security. Look for all instances where actions
are referenced with `@vX` format and convert them to the pinned digest format
using the full commit hash instead.

In @.github/workflows/docs-spelling-check.yaml:
- Line 37: In the docs-spelling-check.yaml workflow file, replace the mutable
version tag in the checkout action from `@v7` to a pinned 40-character commit SHA.
Update the uses statement for actions/checkout to reference a specific commit
hash (such as b4ffde65f46336ab88eb53be808477a3936bae11) instead of the version
tag, and optionally append a comment with the version number for reference.

In @.github/workflows/docs-synchronize-changelog.yaml:
- Line 57: The actions/checkout references at lines 57 and 66 are using mutable
major version tags (v7) instead of being pinned to specific commit SHAs, which
violates the unpinned-uses security policy. Replace both instances of `uses:
actions/checkout@v7` with the fully qualified SHA-pinned version of the action
(e.g., `actions/checkout@<specific-commit-sha>`) to ensure the workflow always
uses the exact version specified and prevent unexpected updates.

In @.github/workflows/docs-url-check.yaml:
- Line 39: The `actions/checkout@v7` action is using a mutable version tag which
violates security best practices. Replace the `@v7` tag with a full-length
commit SHA to pin the action to a specific, immutable reference. You can find
the current commit SHA for v7 from the official actions/checkout repository
releases page and update the workflow step to use that format instead.

In @.github/workflows/prepare-release.yaml:
- Line 52: Replace the mutable version tags for GitHub Actions with their
corresponding full commit SHAs to improve CI supply-chain integrity and
reproducibility. Update actions/checkout from `@v7` to its full commit SHA,
actions/download-artifact from `@v6` to its full commit SHA, and
actions/github-script from `@v9` to its full commit SHA. You can find the exact
commit SHAs by visiting each action's GitHub repository and checking the
releases or tags to identify the specific commit hash for each version.

In @.github/workflows/wiki-generate-blueprints.yaml:
- Around line 37-44: Review the workflow trigger events (check the top level
`on:` directive) to determine if this workflow uses `pull_request_target` or
`workflow_run` events and needs to checkout code from fork pull requests. If
fork PR checkouts are needed, add `allow-unsafe-pr-checkout: true` to both
checkout action steps (the one checking out the BrewWikiGen repository and the
one checking out the FAF Repository) to handle the breaking change in
actions/checkout v7. Additionally, verify if leafo/gh-actions-lua v13 is used
anywhere in this workflow and either ensure any Lua scripts are compatible with
Lua 5.5 or explicitly pin the Lua version to 5.4 by adding `luaVersion: '5.4'`
to maintain backward compatibility if needed.

---

Nitpick comments:
In @.github/workflows/docs-build.yml:
- Line 74: Replace the mutable action version tags with immutable commit SHA
pins for improved supply chain security. In the docs-build.yml workflow file,
update all action references currently using `@v`* tags (specifically
actions/checkout@v7 and others mentioned at lines 74, 89, 96, 129, 139, 152) to
use their full commit SHA format instead. For example, change
actions/checkout@v7 to actions/checkout@<full-commit-sha> where the SHA
corresponds to the specific version you want to use. This ensures the pinned
versions cannot change unexpectedly at runtime.

In @.github/workflows/wiki-generate-icons.yaml:
- Line 61: The inline comments in the workflow file reference v4 documentation
for the upload-artifact action but the workflow is currently using v7 of that
action. Update all comments that contain URLs pointing to the upload-artifact
action documentation to reference v7 instead of v4. Specifically, change any
comment URLs containing "upload-artifact/tree/v4" to "upload-artifact/tree/v7"
to ensure documentation links remain accurate and consistent with the action
version being used.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7845e047-de93-45a5-b120-443cc20f4266

📥 Commits

Reviewing files that changed from the base of the PR and between 301c1e3 and c522e88.

📒 Files selected for processing (19)
  • .github/workflows/bake-blueprints.yaml
  • .github/workflows/deploy-faf.yaml
  • .github/workflows/deploy-fafbeta.yaml
  • .github/workflows/deploy-fafdevelop.yaml
  • .github/workflows/docs-build.yml
  • .github/workflows/docs-convert-changelog.yaml
  • .github/workflows/docs-generate-changelog.yaml
  • .github/workflows/docs-spelling-check.yaml
  • .github/workflows/docs-synchronize-changelog.yaml
  • .github/workflows/docs-url-check.yaml
  • .github/workflows/etfreeman-db-update.yaml
  • .github/workflows/prepare-release.yaml
  • .github/workflows/spookydb-update.yaml
  • .github/workflows/stage-fafbeta.yaml
  • .github/workflows/stage-fafdevelop.yaml
  • .github/workflows/tests.yaml
  • .github/workflows/wiki-generate-blueprints.yaml
  • .github/workflows/wiki-generate-changelogs.yaml
  • .github/workflows/wiki-generate-icons.yaml

Comment thread .github/workflows/bake-blueprints.yaml
Comment thread .github/workflows/deploy-fafbeta.yaml
Comment thread .github/workflows/docs-convert-changelog.yaml
Comment thread .github/workflows/docs-spelling-check.yaml
Comment thread .github/workflows/docs-synchronize-changelog.yaml
Comment thread .github/workflows/docs-url-check.yaml
Comment thread .github/workflows/prepare-release.yaml
Comment on lines +37 to +44
uses: actions/checkout@v7
with:
repository: The-Balthazar/BrewWikiGen
path: ./brew-wiki-gen

# FA repo is sparse checkout as it is quite large and we dont won't to incur higher action minutes for no reason
- name: Checkout FAF Repository # -png folder doesnt exist yet, confirm location.
uses: actions/checkout@v4
uses: actions/checkout@v7

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify action versions exist and check for breaking changes

echo "=== Checking actions/checkout v7 ==="
gh api repos/actions/checkout/git/refs/tags/v7 --jq '.ref' || echo "Tag v7 not found"
echo ""

echo "=== Checking actions/upload-artifact v7 ==="
gh api repos/actions/upload-artifact/git/refs/tags/v7 --jq '.ref' || echo "Tag v7 not found"
echo ""

echo "=== Checking leafo/gh-actions-lua v13 ==="
gh api repos/leafo/gh-actions-lua/git/refs/tags/v13 --jq '.ref' || echo "Tag v13 not found"
echo ""

echo "=== Recent releases for actions/checkout ==="
gh release list --repo actions/checkout --limit 10
echo ""

echo "=== Recent releases for actions/upload-artifact ==="
gh release list --repo actions/upload-artifact --limit 10
echo ""

echo "=== Recent releases for leafo/gh-actions-lua ==="
gh release list --repo leafo/gh-actions-lua --limit 10

Repository: FAForever/fa

Length of output: 1471


🌐 Web query:

actions/checkout v7 breaking changes

💡 Result:

The primary breaking change in actions/checkout v7, released on June 18, 2026, is a new security restriction regarding fork pull request checkouts [1][2]. Key changes in v7 include: 1. Blocked Fork PR Checkouts by Default: The action now refuses to check out code from a fork pull request when used in pull_request_target or workflow_run events (specifically when the workflow is triggered by a pull_request* event) [2][3]. This is designed to prevent "pwn request" vulnerabilities where untrusted fork code could execute in the privileged context of the base repository [2][3]. 2. Opt-in Mechanism: If your workflow requires this functionality, you must explicitly opt in by setting the new input allow-unsafe-pr-checkout to true [3]. Users are strongly advised to review the security risks associated with using pull_request_target before enabling this [2][3]. 3. ESM Migration: The action has been migrated to ESM (ECMAScript Modules) to support newer versions of underlying @actions/* dependencies [1][3]. Future Backport: On July 16, 2026, GitHub will backport this security enforcement to all currently supported major versions of actions/checkout [2]. Workflows pinned to a floating major tag (e.g., actions/checkout@v4) will automatically receive this change and may start failing if they checkout fork pull request code without the new opt-in flag [2]. Workflows pinned to specific SHA, minor, or patch versions will not be affected by the automatic backport [2].

Citations:


🌐 Web query:

actions/upload-artifact v7 breaking changes

💡 Result:

The transition to actions/upload-artifact v7, released on February 26, 2026, primarily introduced a new feature rather than traditional breaking changes [1][2]. The release is backward compatible because the new archive parameter defaults to true, maintaining existing behavior [2][3]. Key aspects of the v7 release include: New Functionality: Direct Unzipped Uploads The most significant addition is the ability to upload artifacts without zipping them by setting the archive input to false [1][2]. This supports: - Single file uploads only: The action will fail if the provided path glob resolves to multiple files [1][3]. - Ignored Name Parameter: When archive is set to false, the name parameter is ignored. The resulting artifact name becomes the name of the uploaded file itself [1][3]. - Workflow Impacts: If you enable archive: false, you must ensure that any subsequent download steps (which require updating to at least actions/download-artifact v8) match the filename rather than a custom artifact name [2][3]. Technical Changes - ESM Upgrade: The action was upgraded to ECMAScript Modules (ESM) to support newer versions of the @actions/* packages [1][4]. - No Documented Breaking Changes: While some users noted that major version bumps often imply breaking changes, the maintainers provided no specific list of breaking behavioral changes for v7 [5]. The release is generally considered a drop-in replacement for v6, provided the new optional features are not used incorrectly [3]. If you are upgrading from v6 to v7, your existing workflows will continue to function as they did before, with compression enabled by default [3]. If you choose to adopt the new direct upload feature, be aware of the specific requirements regarding file counts and naming conventions [1][3].

Citations:


🌐 Web query:

leafo/gh-actions-lua v13 changes

💡 Result:

Version 13 of the leafo/gh-actions-lua GitHub Action, released on April 23, 2026, introduced several key changes [1][2]: Lua 5.5 Support The action added support for Lua 5.5.0 [1][3][4]. Consequently, the default luaVersion was updated to 5.5 (previously 5.4) [1][3]. ESM Migration The action's main.js file was converted to ES modules to maintain compatibility with updated GitHub Actions toolkit packages that are now ESM-only [1][4]. This change does not affect the action's API or inputs [1][3]. Dependency Upgrades The action updated several underlying @actions dependencies to their major versions to ensure compatibility [1][4]: @actions/core: 1.11.1 to 3.0.1 [1][4] @actions/cache: 4.1.0 to 6.0.0 [1][4] @actions/exec: 1.1.1 to 3.0.0 [1][4] @actions/io: 1.1.3 to 3.0.2 [1][4] @actions/tool-cache: 2.0.2 to 4.0.0 [1][4] Refreshed Release Tarballs The included release tarballs were updated: 5.5.0.tar.gz was added [1][3]. 5.3.6.tar.gz replaced 5.3.5.tar.gz [1][4]. 5.4.8.tar.gz replaced 5.4.1.tar.gz [1][4]. Documentation and Example Updates Example snippets were updated to use actions/checkout@v6 (replacing @master/@v4) to resolve Node.js 20 deprecation warnings, and step-security/msvc-dev-cmd@v1 was adopted as a replacement for ilammy/msvc-dev-cmd@v1 [1][3][4].

Citations:


Address breaking changes in actions/checkout v7 and leafo/gh-actions-lua v13.

The version bumps to actions/checkout v7 and leafo/gh-actions-lua v13 introduce breaking changes that may affect this workflow:

  • actions/checkout v7 (released June 18, 2026): Now blocks fork pull request checkouts by default in pull_request_target and workflow_run events. If the workflow needs to checkout fork PR code, add allow-unsafe-pr-checkout: true to the checkout step.
  • leafo/gh-actions-lua v13 (released April 23, 2026): Changes the default Lua version from 5.4 to 5.5. Verify that any Lua scripts in this workflow are compatible with Lua 5.5, or explicitly pin luaVersion: '5.4' if backward compatibility is needed.
  • actions/upload-artifact v7: No breaking changes; this upgrade is safe.
🧰 Tools
🪛 zizmor (1.25.2)

[error] 37-37: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)


[error] 44-44: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)

(unpinned-uses)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/wiki-generate-blueprints.yaml around lines 37 - 44, Review
the workflow trigger events (check the top level `on:` directive) to determine
if this workflow uses `pull_request_target` or `workflow_run` events and needs
to checkout code from fork pull requests. If fork PR checkouts are needed, add
`allow-unsafe-pr-checkout: true` to both checkout action steps (the one checking
out the BrewWikiGen repository and the one checking out the FAF Repository) to
handle the breaking change in actions/checkout v7. Additionally, verify if
leafo/gh-actions-lua v13 is used anywhere in this workflow and either ensure any
Lua scripts are compatible with Lua 5.5 or explicitly pin the Lua version to 5.4
by adding `luaVersion: '5.4'` to maintain backward compatibility if needed.

@BlackYps

Copy link
Copy Markdown
Contributor

I think I'd rather merge #7150 to not deal with the breaking changes of checkout v7 and you forgot to update the comments that reference the version.
What do you think?

@Garanas

Garanas commented Jun 23, 2026

Copy link
Copy Markdown
Member Author

Fine with me 👍

@Garanas Garanas closed this Jun 23, 2026
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.

2 participants