From 5bb103d6154c9fc97dcc5278a230754a62aa8090 Mon Sep 17 00:00:00 2001 From: Daniel Polo <106583643+danielPoloWork@users.noreply.github.com> Date: Sun, 14 Jun 2026 21:53:34 +0200 Subject: [PATCH] ci: bump GitHub Actions off the deprecated Node 20 runtime MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitHub is retiring the node20 actions runtime; every GitHub-authored action in the workflows ran on it. Bump each to its current Node 24 major: - actions/checkout v4 -> v6 (ci, docs, docs-site, release) - actions/upload-artifact v4 -> v7 (release) - actions/download-artifact v4 -> v8 (release) - actions/deploy-pages v4 -> v5 (docs-site) - actions/upload-pages-artifact v3 -> v5 (docs-site; pairs with deploy-pages v5) - DavidAnson/markdownlint-cli2-action v16 -> v23 (docs) The markdownlint-cli2-action bump pulls in a newer markdownlint that adds the MD060 (table-column-style) rule. Disable MD060 in .markdownlint.json: the CJK-width tables in docs/i18n/ cannot satisfy byte-aligned table pipes, and the rule was absent (hence unenforced) under the prior pinned action — so this preserves existing behaviour rather than introducing churn. Left as-is: - ilammy/msvc-dev-cmd@v1 — still node20, but no Node 24 release exists upstream yet (latest tag is v1.x); the only remaining node20 dependency, to revisit when upstream ships a node24 major. - lukka/get-cmake@latest — already resolves to a node24 release. - lycheeverse/lychee-action@v2 — composite action, no node20 runtime of its own. Validation: all four workflow YAMLs parse; .markdownlint.json is valid JSON; the latest markdownlint (v0.40.0, as bundled by the v23 action) reports zero errors across all 84 tracked markdown files with MD060 disabled; consistency lint passes. CI / build only — no API/ABI/behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 20 ++++++++++---------- .github/workflows/docs-site.yml | 6 +++--- .github/workflows/docs.yml | 10 +++++----- .github/workflows/release.yml | 8 ++++---- .markdownlint.json | 3 ++- CHANGELOG.md | 13 +++++++++++++ 6 files changed, 37 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c81b28..f656e5c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -74,7 +74,7 @@ jobs: - { os: macos-14, compiler: apple-clang, preset: ubsan } steps: - name: Check out the source tree - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install a recent CMake and Ninja uses: lukka/get-cmake@latest @@ -125,7 +125,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Check out - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Ensure clang-format is available shell: bash @@ -151,7 +151,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Check out (full history needed for diff) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 @@ -216,7 +216,7 @@ jobs: std: [c89, c99] steps: - name: Check out - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Compile the minimal C consumer under -std=${{ matrix.std }} -pedantic -Werror shell: bash @@ -239,7 +239,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Check out - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install CMake and Ninja uses: lukka/get-cmake@latest @@ -336,7 +336,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Check out - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install Valgrind shell: bash @@ -420,7 +420,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Check out - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install CMake and Ninja uses: lukka/get-cmake@latest @@ -468,7 +468,7 @@ jobs: mode: [MUTEX, LOCKFREE] steps: - name: Check out - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install CMake and Ninja uses: lukka/get-cmake@latest @@ -516,7 +516,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Check out - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install CMake and Ninja uses: lukka/get-cmake@latest @@ -560,7 +560,7 @@ jobs: mode: [MUTEX, LOCKFREE] steps: - name: Check out - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install CMake and Ninja uses: lukka/get-cmake@latest diff --git a/.github/workflows/docs-site.yml b/.github/workflows/docs-site.yml index 3a409b0..bc0640d 100644 --- a/.github/workflows/docs-site.yml +++ b/.github/workflows/docs-site.yml @@ -29,7 +29,7 @@ jobs: name: Build API docs (warn-as-error gate) runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install Doxygen run: | @@ -57,7 +57,7 @@ jobs: - name: Upload Pages artifact if: github.event_name != 'pull_request' - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v5 with: path: build/doxygen/html @@ -80,4 +80,4 @@ jobs: steps: - name: Deploy id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 33bfc31..e4e2061 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -26,8 +26,8 @@ jobs: name: Lint Markdown runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: DavidAnson/markdownlint-cli2-action@v16 + - uses: actions/checkout@v6 + - uses: DavidAnson/markdownlint-cli2-action@v23 with: globs: | **/*.md @@ -37,7 +37,7 @@ jobs: name: Check internal links runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Lychee — offline (internal links only) uses: lycheeverse/lychee-action@v2 with: @@ -48,7 +48,7 @@ jobs: name: ADR numbering & index sanity runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Verify sequential numbering and index coverage shell: bash run: | @@ -97,7 +97,7 @@ jobs: name: Project consistency lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: # The i18n-freshness check compares each translation's recorded source # commit against the source file's history, so it needs full history, diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5ba6bd3..98fd585 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -110,7 +110,7 @@ jobs: echo "Building artifact for tag=$tag (version=$version) on ${{ matrix.platform }}" - name: Check out the tagged commit - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ steps.tag.outputs.tag }} @@ -174,7 +174,7 @@ jobs: ls -la "pbr-memory-pool-${version}-${platform}.tar.gz" - name: Upload the platform artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: artifact-${{ matrix.platform }} path: pbr-memory-pool-${{ steps.tag.outputs.version }}-${{ matrix.platform }}.tar.gz @@ -217,7 +217,7 @@ jobs: echo "Drafting release for tag=$tag (version=$version, prerelease=$prerelease)" - name: Check out the tagged commit (for release notes file) - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ steps.tag.outputs.tag }} @@ -234,7 +234,7 @@ jobs: echo "Release notes file present at: $notes" - name: Download all platform artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: path: artifacts/ pattern: artifact-* diff --git a/.markdownlint.json b/.markdownlint.json index da10ca0..52134d8 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -5,5 +5,6 @@ "MD024": { "siblings_only": true }, "MD033": false, "MD036": false, - "MD040": false + "MD040": false, + "MD060": false } diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ea53a5..29cad7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,19 @@ dated version block (`## [X.Y.Z] — YYYY-MM-DD`) when a release PR closes a mil two README rows are re-pinned to the current source commit and flipped from `stale` back to `translated`, clearing the `i18n-freshness` consistency-lint flag the `v1.1.0` release raised. Documentation-only; no API change. +- **CI GitHub Actions bumped off the deprecated Node 20 runtime onto Node 24.** + `actions/checkout` v4 → v6, `actions/upload-artifact` v4 → v7, + `actions/download-artifact` v4 → v8, `actions/deploy-pages` v4 → v5, + `actions/upload-pages-artifact` v3 → v5, and + `DavidAnson/markdownlint-cli2-action` v16 → v23 — all of which previously ran on + `node20`, which GitHub is retiring. The markdownlint bump pulls in a newer + markdownlint that adds the `MD060` (table-column-style) rule; it is disabled in + [`.markdownlint.json`](.markdownlint.json) because byte-aligned table pipes are + not achievable for the CJK-width tables in the `docs/i18n/` translations — + preserving the prior (rule-absent) behaviour. `ilammy/msvc-dev-cmd` stays on `v1` + (no Node 24 release exists upstream yet); `lukka/get-cmake@latest` and + `lycheeverse/lychee-action@v2` already run on Node 24 / as composite actions. + CI / build only; no API/ABI/behaviour change. ## [1.1.0] — 2026-06-14