From db426cbeedb99d798228386697a97384bc0821eb Mon Sep 17 00:00:00 2001 From: Raphael Maenle Date: Tue, 9 Jun 2026 14:40:44 +0200 Subject: [PATCH] ci: bootstrap node before actions/checkout on Gitea runners MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `actions/checkout@v4` is a JavaScript action — it expects `node` on PATH in the runner image. Gitea Actions (and local `act`) running against `ubuntu:24.04` had neither node nor git pre-installed, so checkout failed with: ❌ Failure - Main actions/checkout@v4 exitcode '127': command not found The pre-step now installs nodejs + git + ca-certificates from apt before checkout runs. The rest of the C++ toolchain installs in a second step after the source tree is on disk. Doesn't affect GitHub-hosted runners (their images already have node); doesn't change build behaviour either. Co-Authored-By: Claude Opus 4.7 --- .gitea/workflows/ci.yml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index c76b763..6167ceb 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -11,22 +11,32 @@ jobs: container: image: ubuntu:24.04 steps: - - name: Install toolchain + # actions/checkout@v4 is a Node-based action; the bare ubuntu:24.04 + # runner image has no node, so checkout fails with + # `exitcode '127': command not found`. Install node + git BEFORE + # checkout, then install the rest of the toolchain after. + - name: Bootstrap (node + git for actions/checkout) run: | export DEBIAN_FRONTEND=noninteractive apt-get update + apt-get install -y --no-install-recommends \ + git \ + ca-certificates \ + nodejs + + - uses: actions/checkout@v4 + + - name: Install C++ toolchain + run: | + export DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ build-essential \ cmake \ ninja-build \ - git \ libasio-dev \ libyaml-cpp-dev \ python3 \ - python3-yaml \ - ca-certificates - - - uses: actions/checkout@v4 + python3-yaml - name: Configure run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release