From eca8e24fd9bc03462448c4cc81c1cc3c10b6f84e Mon Sep 17 00:00:00 2001 From: maro Date: Wed, 26 Aug 2026 00:42:29 +0200 Subject: [PATCH] Fix release deploy: use a Node-based image so checkout's JS action runs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docker:27-cli is Alpine with no Node.js, but actions/checkout@v4 is a JS action that needs a Node runtime in the job container — it failed at Checkout with exit 127. node:22-bookworm-slim already has Node (same reason the test job's node:22-alpine works); Docker CLI and openssh-client are added via apt instead. Co-Authored-By: Claude Sonnet 5 --- .gitea/workflows/release.yml | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 500a311..416f13c 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -38,19 +38,28 @@ jobs: # The anouma-runner runs as a Docker container itself (gitea/runner:3), # with the host's docker.sock bind-mounted in but no `docker` CLI binary # of its own — a job with no `container:` here runs directly inside that - # minimal runner image and gets "docker: command not found". Using the - # official Docker CLI image instead gives this job the `docker` binary, - # and the runner auto-mounts the same host docker.sock into it (sibling - # containers — see container.docker_host in the runner's config.yaml), - # so `docker build`/`push` operate on the host's real Docker daemon. + # minimal runner image and gets "docker: command not found". + # + # A plain `docker:27-cli` image (Alpine, no Node.js) doesn't work either: + # actions/checkout@v4 is a JS action and needs a Node runtime in the job + # container, which that image doesn't have — it failed at Checkout with + # exit 127. Using a Node image as the base guarantees Node is already + # there (same reason the `test` job's node:22-alpine works), and the + # Docker CLI + ssh client are added via apt. The runner auto-mounts the + # same host docker.sock into this container (sibling containers — see + # container.docker_host in the runner's config.yaml), so `docker + # build`/`push` operate on the host's real Docker daemon. container: - image: docker:27-cli + image: node:22-bookworm-slim steps: - name: Checkout uses: actions/checkout@v4 - - name: Install ssh client - run: apk add --no-cache openssh-client + - name: Install Docker CLI and ssh client + run: | + apt-get update + apt-get install -y --no-install-recommends docker.io openssh-client + rm -rf /var/lib/apt/lists/* - name: Determine image tags id: image