Skip to content

Commit 2aa2e34

Browse files
committed
Upgrade GitHub Actions to Node 24
1 parent f24df52 commit 2aa2e34

14 files changed

Lines changed: 41 additions & 24 deletions

.github/actions/setup/README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# `FastLED/fbuild/setup` - composite GitHub Action
22

3-
One-line fbuild setup for consumer CI pipelines. Installs fbuild, wires `actions/cache@v4` with sensible defaults, and exports `FBUILD_CACHE_DIR` plus `ZCCACHE_DIR` so subsequent steps Just Work.
3+
One-line fbuild setup for consumer CI pipelines. Installs fbuild, wires `actions/cache@v5` with sensible defaults, and exports `FBUILD_CACHE_DIR` plus `ZCCACHE_DIR` so subsequent steps Just Work.
44

55
For the underlying cache design (what's cached, why, and how to tune the key for your project) see [`../../docs/CI_CACHING.md`](../../../docs/CI_CACHING.md).
66

@@ -53,7 +53,7 @@ jobs:
5353
5454
## Caching the zccache store
5555
56-
The built-in `cache: true` wiring covers the fbuild package/tool cache rooted at `FBUILD_CACHE_DIR`. If you also want cross-run reuse of zccache's object store, add your own `actions/cache@v4` step for the resolved zccache directory and your project build outputs:
56+
The built-in `cache: true` wiring covers the fbuild package/tool cache rooted at `FBUILD_CACHE_DIR`. If you also want cross-run reuse of zccache's object store, add your own `actions/cache@v5` step for the resolved zccache directory and your project build outputs:
5757

5858
```yaml
5959
- name: Setup fbuild
@@ -63,7 +63,7 @@ The built-in `cache: true` wiring covers the fbuild package/tool cache rooted at
6363
cache-key-extra: ${{ matrix.board }}-${{ hashFiles('platformio.ini') }}
6464
6565
- name: Restore zccache store + project build outputs
66-
uses: actions/cache@v4
66+
uses: actions/cache@v5
6767
with:
6868
path: |
6969
${{ steps.fbuild-setup.outputs.zccache-store-path }}
@@ -105,7 +105,7 @@ Use `steps.<id>.outputs.zccache-store-path` inside workflow expressions. The sam
105105
| `cache-hit` | `true` if the cache was restored from a previous run, `false` on miss. |
106106
| `cache-dir` | Resolved cache directory path. Useful for diagnostic steps. |
107107
| `fbuild-hash` | sha256 prefix (16 hex chars) of the installed fbuild wheel's `RECORD` file. Baked into the cache key so any fbuild change, including a re-released wheel at the same version, invalidates stale cache artifacts. |
108-
| `zccache-store-path` | Resolved zccache object-store directory. The same path is exported to later steps as `ZCCACHE_DIR`, so consumer-managed `actions/cache@v4` blocks can reuse it without guessing platform-specific defaults. |
108+
| `zccache-store-path` | Resolved zccache object-store directory. The same path is exported to later steps as `ZCCACHE_DIR`, so consumer-managed `actions/cache@v5` blocks can reuse it without guessing platform-specific defaults. |
109109

110110
## What this action does
111111

@@ -114,7 +114,7 @@ Use `steps.<id>.outputs.zccache-store-path` inside workflow expressions. The sam
114114
3. Exports `FBUILD_CACHE_DIR` and `ZCCACHE_DIR` via `$GITHUB_ENV` so every later step inherits them, and exposes the zccache location as the `zccache-store-path` output.
115115
4. Installs fbuild from PyPI at the requested version.
116116
5. **Computes the installed fbuild's content hash** (sha256 of its dist-info `RECORD`) and bakes it into the cache key. This guarantees the cache is tied to the exact fbuild you're running, not just the PyPI version string, so `latest` is safe and a re-released wheel won't poison the cache.
117-
6. Restores (and on job-end, saves) the fbuild cache via `actions/cache@v4`.
117+
6. Restores (and on job-end, saves) the fbuild cache via `actions/cache@v5`.
118118

119119
### Why hash-pinning matters
120120

@@ -128,7 +128,7 @@ Baking the wheel's `RECORD` hash into the key means:
128128

129129
It does **not** cache `~/.fbuild/*/daemon/` - that's ephemeral runtime state and restoring it across runs causes broken daemon discovery on the next client call. The action sidesteps the whole `~/.fbuild/` tree by redirecting fbuild's cache to `$RUNNER_TEMP/fbuild-cache` via `FBUILD_CACHE_DIR`.
130130

131-
It also does **not** automatically cache zccache's object store for you. That store lives at `ZCCACHE_DIR` / `zccache-store-path`, and consumers who want cross-run per-TU reuse should add their own `actions/cache@v4` step as shown above.
131+
It also does **not** automatically cache zccache's object store for you. That store lives at `ZCCACHE_DIR` / `zccache-store-path`, and consumers who want cross-run per-TU reuse should add their own `actions/cache@v5` step as shown above.
132132

133133
## Version pinning
134134

@@ -142,5 +142,5 @@ At time of writing there is no `v1` tag - use `@main` and pin `fbuild-version` t
142142

143143
## Related
144144

145-
- [`docs/CI_CACHING.md`](../../../docs/CI_CACHING.md) - detailed design of the underlying cache, plus raw `actions/cache@v4` snippets for consumers who prefer to avoid the action dependency.
145+
- [`docs/CI_CACHING.md`](../../../docs/CI_CACHING.md) - detailed design of the underlying cache, plus raw `actions/cache@v5` snippets for consumers who prefer to avoid the action dependency.
146146
- [#101](https://github.com/FastLED/fbuild/issues/101) - the issue that tracked creation of this action.

.github/actions/setup/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ runs:
4949
using: "composite"
5050
steps:
5151
- name: Set up Python
52-
uses: actions/setup-python@v5
52+
uses: actions/setup-python@v6
5353
with:
5454
python-version: ${{ inputs.python-version }}
5555

@@ -118,7 +118,7 @@ runs:
118118
- name: Restore fbuild cache
119119
if: ${{ inputs.cache == 'true' }}
120120
id: fbuild-cache
121-
uses: actions/cache@v4
121+
uses: actions/cache@v5
122122
with:
123123
path: ${{ steps.resolve-paths.outputs.cache-dir }}
124124
key: fbuild-${{ inputs.cache-version }}-${{ runner.os }}-${{ runner.arch }}-${{ steps.fbuild-hash.outputs.fbuild-hash }}-${{ inputs.cache-key-extra }}

.github/workflows/add-to-project.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ on:
2424
pull_request:
2525
types: [opened]
2626

27+
env:
28+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
29+
2730
# pull_request (not pull_request_target) — fork PRs run in the fork's context
2831
# without access to PROJECT_APP_PRIVATE_KEY, so they simply won't be
2932
# auto-added. That is an intentional security trade-off: pull_request_target

.github/workflows/check-macos.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
env:
1010
CARGO_TERM_COLOR: always
1111
RUSTFLAGS: "-D warnings"
12+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
1213

1314
jobs:
1415
check:

.github/workflows/check-ubuntu.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
env:
1010
CARGO_TERM_COLOR: always
1111
RUSTFLAGS: "-D warnings"
12+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
1213

1314
jobs:
1415
check:

.github/workflows/check-windows.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
env:
1010
CARGO_TERM_COLOR: always
1111
RUSTFLAGS: "-D warnings"
12+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
1213

1314
jobs:
1415
check:

.github/workflows/docs.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ on:
66
pull_request:
77
branches: [main]
88

9+
env:
10+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
11+
912
jobs:
1013
docs:
1114
name: Documentation

.github/workflows/fmt.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ on:
66
pull_request:
77
branches: [main]
88

9+
env:
10+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
11+
912
jobs:
1013
fmt:
1114
name: Formatting

.github/workflows/msrv.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ on:
66
pull_request:
77
branches: [main]
88

9+
env:
10+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true"
11+
912
jobs:
1013
msrv:
1114
name: Min Rust Version (1.94.1)

.github/workflows/release-auto.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ jobs:
170170
ref: ${{ needs.prepare.outputs.release_ref }}
171171

172172
- name: Download native artifacts
173-
uses: actions/download-artifact@v7
173+
uses: actions/download-artifact@v8
174174
with:
175175
pattern: binaries-*
176176
path: artifacts
@@ -204,7 +204,7 @@ jobs:
204204
sha256sum fbuild-* > "fbuild-${version}-SHA256SUMS.txt"
205205
206206
- name: Attest release artifacts
207-
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3
207+
uses: actions/attest-build-provenance@v4
208208
with:
209209
subject-checksums: dist/fbuild-${{ needs.prepare.outputs.version }}-SHA256SUMS.txt
210210

@@ -239,7 +239,7 @@ jobs:
239239
ref: ${{ needs.prepare.outputs.release_ref }}
240240

241241
- name: Download native artifacts
242-
uses: actions/download-artifact@v7
242+
uses: actions/download-artifact@v8
243243
with:
244244
pattern: binaries-*
245245
path: dist/_tmp
@@ -312,7 +312,7 @@ jobs:
312312

313313
steps:
314314
- name: Download PyPI distributions
315-
uses: actions/download-artifact@v7
315+
uses: actions/download-artifact@v8
316316
with:
317317
name: pypi-fbuild
318318
path: dist

0 commit comments

Comments
 (0)