diff --git a/install/runner-install.sh b/install/runner-install.sh index a326549..57dfda7 100644 --- a/install/runner-install.sh +++ b/install/runner-install.sh @@ -63,8 +63,26 @@ valid_token_word "$RUNNER_LABELS" || { msg_err "RUNNER_LABELS enthält unzuläss # der unprivilegierte User darf dort nicht schreiben. run_user() { runuser -u "$APP_USER" -- env -C "$RUNNER_DIR" HOME="$APP_HOME" "$@"; } -# ── Pakete: git/rsync, Node (checkout-Action), Docker (Test-Container) ──────── -setup_base_apt git rsync ca-certificates curl +# ── Pakete: git/rsync, Node (checkout-Action), Docker (Test-Container), +# Build-Werkzeuge (Compiler-Sprachen in CI) ───────────────────────────────── +# +# make/gcc/protobuf: Der Runner faehrt Host-Mode, also gibt es kein Image, das +# Werkzeuge mitbringt — was hier nicht liegt, hat kein Job. Konkret gemessen an +# l.kirchner/patchmgr (Go): +# make "make: command not found" in jedem Gate-Job +# gcc ohne C-Compiler setzt Go CGO_ENABLED=0, und +# "go test -race" ist dann gar nicht baubar +# protobuf-compiler protoc fuer die Codegenerierung +# libprotobuf-dev liefert /usr/include/google/protobuf/*.proto; ohne die +# Includes scheitert protoc trotz vorhandenem Binary +# +# Bewusst NICHT installiert: sudo. Ein Workflow soll auf diesem Runner nichts +# nachinstallieren koennen — was gebraucht wird, steht hier. +# +# Go selbst gehoert nicht hierher: Projekte holen es ueber actions/setup-go, +# weil CI-Matrizen mehrere Fassungen fahren. +setup_base_apt git rsync ca-certificates curl \ + make gcc protobuf-compiler libprotobuf-dev NODE_HAVE="$(command -v node >/dev/null 2>&1 && node -v | sed -E 's/^v([0-9]+).*/\1/' || echo 0)" if [[ "$NODE_HAVE" != "$NODE_MAJOR" ]]; then