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
|
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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user