From 5f430432c8b33cab3f5872073a5c528ffd7242e4 Mon Sep 17 00:00:00 2001 From: Stephen Donahue Date: Mon, 3 Aug 2026 01:52:08 +0000 Subject: [PATCH] Install Yarn explicitly in the deploy workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit setup-node provides Node but not Yarn; the workflow was relying on the runner image shipping it, as GitHub's hosted images do. When the act_runner image changed, `yarn install` began failing with exit 127 and every push since 6964ce7 (2026-07-19) silently stopped deploying — a dead pipeline reads the same as a site that did not need to change. Pinned to 1.x: the lockfile is v1 and `--frozen-lockfile` is v1 syntax. --- .gitea/workflows/deploy.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 8a2615f..40ef588 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -14,6 +14,15 @@ jobs: with: node-version: "22" + # setup-node installs Node but not Yarn. GitHub's hosted images happen to + # ship Yarn preinstalled, so this workflow was silently depending on the + # image rather than on anything declared here — and broke the moment the + # act_runner image changed, with `yarn: command not found` (exit 127). + # Pin to 1.x: the lockfile is v1 format and `--frozen-lockfile` is v1 + # syntax (v2+ renamed it `--immutable`). + - name: Install Yarn + run: npm install -g yarn@1 + - name: Install dependencies run: yarn install --frozen-lockfile