ci: bootstrap node before actions/checkout on Gitea runners

`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 <noreply@anthropic.com>
This commit is contained in:
2026-06-09 14:40:44 +02:00
parent 9c5d67fdad
commit db426cbeed
+16 -6
View File
@@ -11,22 +11,32 @@ jobs:
container: container:
image: ubuntu:24.04 image: ubuntu:24.04
steps: 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: | run: |
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
apt-get update 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 \ apt-get install -y --no-install-recommends \
build-essential \ build-essential \
cmake \ cmake \
ninja-build \ ninja-build \
git \
libasio-dev \ libasio-dev \
libyaml-cpp-dev \ libyaml-cpp-dev \
python3 \ python3 \
python3-yaml \ python3-yaml
ca-certificates
- uses: actions/checkout@v4
- name: Configure - name: Configure
run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release