Add node and git installation step for proper checkout in build workflow
This commit is contained in:
@@ -29,6 +29,23 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
container: php:8.5-cli
|
||||
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
|
||||
|
||||
- name: Syntax aller PHP-Dateien prüfen
|
||||
|
||||
@@ -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`
|
||||
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
|
||||
|
||||
Auf dem Arbeitsplatz:
|
||||
|
||||
Reference in New Issue
Block a user