Add node and git installation step for proper checkout in build workflow
EK-DOS-WEB bauen und ausrollen / backend-pruefen (push) Failing after 29s
EK-DOS-WEB bauen und ausrollen / bauen-und-ausrollen (push) Skipped

This commit is contained in:
Kyle Müller
2026-09-06 22:45:15 +02:00
parent 940b2d4767
commit 7d53bd6856
2 changed files with 33 additions and 0 deletions
+17
View File
@@ -29,6 +29,23 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: php:8.5-cli container: php:8.5-cli
steps: steps:
# MUSS vor dem Checkout stehen.
#
# actions/checkout ist eine JavaScript-Aktion. act_runner führt solche
# Aktionen mit dem `node` AUS DEM JOB-CONTAINER aus -- anders als die
# gehosteten Runner von GitHub, die ihr eigenes node mitbringen.
# php:8.5-cli enthält weder node noch git, deshalb scheitert der Checkout
# dort mit „exit code 127" (command not found), ohne eine Zeile Ausgabe.
#
# Dieser Schritt ist ein reines Shell-Kommando und braucht kein node,
# läuft also auch im nackten Container.
- name: git und node für den Checkout bereitstellen
run: |
set -eu
apt-get update
apt-get install -y --no-install-recommends git nodejs curl ca-certificates
echo "node $(node --version), $(git --version)"
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Syntax aller PHP-Dateien prüfen - name: Syntax aller PHP-Dateien prüfen
+16
View File
@@ -201,6 +201,22 @@ unverändert weiter -- ein automatischer Rückschritt würde dann auf die
Der Lauf berichtet stattdessen, was gerade aktiv ist und ob `/api/health` Der Lauf berichtet stattdessen, was gerade aktiv ist und ob `/api/health`
antwortet; zurückgeschaltet wird bei Bedarf von Hand. antwortet; zurückgeschaltet wird bei Bedarf von Hand.
### Warum der PHP-Auftrag erst node installiert
`actions/checkout` ist eine JavaScript-Aktion. act_runner führt solche Aktionen
mit dem `node` **aus dem Job-Container** aus -- anders als die gehosteten Runner
von GitHub, die ihr eigenes node mitbringen. `php:8.5-cli` enthält weder node
noch git, deshalb bricht der Checkout dort mit `exit code 127` ab, ohne eine
Zeile Ausgabe zu erzeugen.
Der erste Schritt des Auftrags installiert daher `git` und `nodejs` per apt. Er
ist ein reines Shell-Kommando und läuft deshalb auch im nackten Container. Der
Bau-Auftrag braucht das nicht: `node:22-bookworm` bringt beides mit.
Bookworm liefert node 18, `actions/checkout@v4` deklariert node 20. In der
Praxis läuft das Bündel der Aktion auf node 18 -- sollte es doch einmal klemmen,
node 20 aus dem NodeSource-Paketstand installieren.
### Schlüssel einrichten ### Schlüssel einrichten
Auf dem Arbeitsplatz: Auf dem Arbeitsplatz: