From a8ba433ea8964fb2042024b31a53108a569060bc Mon Sep 17 00:00:00 2001 From: Mikael Hugo Date: Mon, 18 May 2026 01:35:09 +0200 Subject: [PATCH] ci: drop cache:npm from setup-node so it doesn't hit EBADENGINE on runner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The forgejo-runner pod bootstraps with nodejs-slim_22 from nix (so JS-based Forgejo Actions can launch). setup-node@v4 with `cache: npm` invokes system npm — under Node 22 — which fails the engines check ("Required: >=26.1.0, Actual: v22.22.3") before any workflow step ever runs. The downstream `npm ci` step runs after setup-node updates PATH to the just-installed Node 26.1.0, so it works fine. We're just losing the auto-set-up npm download cache here; can wire SF's own cache later if first runs feel slow. Co-Authored-By: Claude Opus 4.7 (1M context) --- .forgejo/workflows/self-deploy.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/self-deploy.yml b/.forgejo/workflows/self-deploy.yml index ba4f5ca77..526b96605 100644 --- a/.forgejo/workflows/self-deploy.yml +++ b/.forgejo/workflows/self-deploy.yml @@ -36,7 +36,13 @@ jobs: uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - cache: npm + # cache: npm intentionally omitted — setup-node@v4 invokes the system + # npm to validate the lockfile, and on the forgejo-runner pod the + # system Node is v22 (the slim nix-profile install used to bootstrap + # JS-based actions). package.json's engines: { node: ">=26.1.0" } + # triggers EBADENGINE on that v22 invocation. The workflow's own + # `npm ci` step below runs after PATH is updated to the just-installed + # Node 26, so it's unaffected. - name: Install dependencies run: |