Run CI orchestration and setup as Java 25 source programs
Some checks failed
Build, test and publish / verify (push) Failing after 11s
Some checks failed
Build, test and publish / verify (push) Failing after 11s
This commit is contained in:
@@ -5,6 +5,26 @@ backend en frontend, bouwt twee images en draait Playwright tegen die containers
|
||||
Alleen `main` mag daarna images publiceren. Er vindt geen deployment plaats.
|
||||
Tagpushes en aparte pull-requestevents starten geen extra workflow.
|
||||
|
||||
## Java-bronbestanden uitvoeren
|
||||
|
||||
De CI- en setuphulpmiddelen zijn Java 25-bronbestanden. Start ze direct met
|
||||
`java ci/Ci.java <opdracht>` vanuit de repositoryroot. De Java-launcher compileert
|
||||
de benodigde bronbestanden in het geheugen. Er is geen aparte `javac`-stap,
|
||||
Maven-module, Python-installatie of scriptingframework nodig. De helper gebruikt
|
||||
alleen de JDK, inclusief de HTTP-client, process builder en bestandsloten.
|
||||
|
||||
Beschikbare opdrachten: `verify`, `publish`, `cleanup`, `attempt`, `test`,
|
||||
`configure-gitea`, `configure-docker <daemon.json>` en
|
||||
`install-runner [--prepare-only]`. `verify` heeft een intern tijdsbudget van
|
||||
75 minuten; `publish` 15 minuten. Opruimen krijgt een apart budget van 2 minuten.
|
||||
|
||||
Zorg dat `java` naar JDK 25 verwijst, bijvoorbeeld met:
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64
|
||||
export PATH="$JAVA_HOME/bin:$PATH"
|
||||
```
|
||||
|
||||
## Machines en voorwaarden
|
||||
|
||||
Gitea 1.25.4 en de registry staan op de bestaande Synology,
|
||||
@@ -14,8 +34,8 @@ wakker blijven; Docker en de runner moeten draaien. Anders blijven jobs wachten.
|
||||
Een host-runner voert repositorycode uit als de ontwikkelgebruiker: gebruik deze
|
||||
runner alleen voor deze vertrouwde repository.
|
||||
|
||||
De runner heeft Git, Bash, JDK 25, Maven 3.9+, Node 22.22.3+/24.15.0+/26+, npm,
|
||||
Python 3, curl, flock (util-linux), timeout (coreutils) en een werkende Docker-daemon
|
||||
De runner heeft Git, Bash, JDK 25, Maven 3.9+, Node 22.22.3+/24.15.0+/26+, npm
|
||||
en een werkende Docker-daemon
|
||||
nodig. De huidige mini-pc heeft de ontwikkeltools en Docker Desktop al geïnstalleerd.
|
||||
De workflow gebruikt één job tegelijk (`capacity: 1`), één Playwright-worker en
|
||||
CPU/geheugenlimieten voor de tijdelijke applicatie- en browsercontainers.
|
||||
@@ -52,7 +72,7 @@ Je kunt de instelling ook samenvoegen met behoud van bestaande instellingen en
|
||||
backup via:
|
||||
|
||||
```sh
|
||||
python3 ci/runner/configure-docker.py "$HOME/.docker/daemon.json"
|
||||
java ci/Ci.java configure-docker "$HOME/.docker/daemon.json"
|
||||
```
|
||||
|
||||
Voor Docker Engine op Linux is dat dezelfde toevoeging aan
|
||||
@@ -88,7 +108,7 @@ Het gewone jobtoken van Gitea 1.25 biedt geen packagepublicatie; gebruik een PAT
|
||||
Gebruik een repository-runnerregistratietoken, geen instancebrede registratie.
|
||||
Sla tokenwaarden buiten Git op en plaats ze niet in opdrachten, screenshots of logs.
|
||||
|
||||
Voor reproduceerbare configuratie bestaat `ci/configure-gitea.py`. Maak twee
|
||||
Voor reproduceerbare configuratie bestaat `java ci/Ci.java configure-gitea`. Maak twee
|
||||
bestanden buiten de repository met mode `600`: één voor een PAT met voldoende
|
||||
repositorybeheerrechten (repository Actions, secrets, variabelen en runnerregistratie),
|
||||
en één voor de publicatie-PAT. De beheer-PAT hoeft niet als workflowsecret te worden
|
||||
@@ -100,7 +120,7 @@ export GITEA_ADMIN_TOKEN_FILE="$HOME/.config/agiledancers-runner/admin-token"
|
||||
export REGISTRY_TOKEN_FILE="$HOME/.config/agiledancers-runner/registry-token"
|
||||
export REGISTRY_USER=wanjakrah
|
||||
export TARGET_PLATFORM=linux/amd64 # alleen als dit op de Synology is vastgesteld
|
||||
python3 ci/configure-gitea.py
|
||||
java ci/Ci.java configure-gitea
|
||||
```
|
||||
|
||||
Het script stelt de repository-instellingen in via de API en schrijft het
|
||||
@@ -118,9 +138,9 @@ testdiagnostiek; gepubliceerde containerimages worden niet automatisch verwijder
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64
|
||||
bash ci/runner/install.sh --prepare-only
|
||||
java ci/Ci.java install-runner --prepare-only
|
||||
# Na Dockerconfiguratie en het opslaan van het registratietoken:
|
||||
bash ci/runner/install.sh
|
||||
java ci/Ci.java install-runner
|
||||
systemctl --user status agiledancers-runner
|
||||
journalctl --user -u agiledancers-runner -f
|
||||
```
|
||||
@@ -168,8 +188,8 @@ De frontend luistert op containerpoort 8080, ondersteunt SPA-routes en proxy't
|
||||
8080. Voorbeelden voor eventueel handmatig starten staan los van de pipeline;
|
||||
de pipeline start geen blijvende applicatie op de NAS.
|
||||
|
||||
`ci/verify.sh` maakt een succesmarker pas na alle builds en tests.
|
||||
`ci/publish.sh` vereist die marker en hoofdbranchref. Onder een gedeeld `flock`
|
||||
`java ci/Ci.java verify` maakt een succesmarker pas na alle builds en tests.
|
||||
`java ci/Ci.java publish` vereist die marker en hoofdbranchref. Onder een gedeeld Java-bestandslot (`FileChannel`)
|
||||
buiten de checkout worden bestaande commitimages hergebruikt en ontbrekende
|
||||
images geüpload. Iedere image wordt teruggehaald, op revisielabel gecontroleerd en
|
||||
met digest vastgelegd in de diagnostiek. Authenticatie- of netwerkfouten tellen
|
||||
@@ -192,7 +212,7 @@ niet in; de workflow maakt daarom zelf een unieke identificatie per poging. Geen
|
||||
inspect met mogelijke credentials wordt opgenomen.
|
||||
|
||||
Bij mislukking blijven de oorspronkelijke exitstatus en rapporten behouden.
|
||||
Een trap én een `always()`-stap verzamelen diagnostiek en verwijderen de tijdelijke
|
||||
Een Java-`finally`/shutdown-hook én een `always()`-stap verzamelen diagnostiek en verwijderen de tijdelijke
|
||||
containers en het netwerk met hun unieke runnaam. Een harde machine-uitval kan
|
||||
opruimen onderbreken: controleer daarna uitsluitend achtergebleven resources met
|
||||
label `agiledancers.ci.run`; gebruik geen algemene Docker-prune op de ontwikkel-PC.
|
||||
@@ -206,7 +226,7 @@ blijven de committags bruikbaar en worden de oude `main`-updates overgeslagen.
|
||||
Lokale controle van publicatie-/foutgedrag zonder registrywijzigingen:
|
||||
|
||||
```sh
|
||||
python3 -m unittest discover -s ci/tests -v
|
||||
java ci/Ci.java test
|
||||
```
|
||||
|
||||
Volledige lokale verificatie met Docker en de vastgestelde platformwaarde:
|
||||
@@ -214,7 +234,7 @@ Volledige lokale verificatie met Docker en de vastgestelde platformwaarde:
|
||||
```sh
|
||||
export JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64
|
||||
export TARGET_PLATFORM=linux/amd64 # eerst de Synology controleren
|
||||
bash ci/verify.sh
|
||||
java ci/Ci.java verify
|
||||
```
|
||||
|
||||
## Operationele oplevering
|
||||
|
||||
Reference in New Issue
Block a user