Some checks failed
Host-Based Deploy (Java 21 Fix) / build-and-run (push) Failing after 13s
67 lines
2.3 KiB
YAML
67 lines
2.3 KiB
YAML
name: Host-Based Deploy (Java 21 Fix)
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
build-and-run:
|
|
# WICHTIG: Hier nutzen wir das neue Host-Label
|
|
runs-on: pve-host
|
|
steps:
|
|
- name: Checkout Code
|
|
run: |
|
|
# Debug: Wer ist git.langhei.de?
|
|
cat /etc/hosts
|
|
ping -c 1 git.langhei.de || echo "Ping failed"
|
|
|
|
# Sicherstellen, dass wir im richtigen Verzeichnis sind
|
|
rm -rf ./* || true
|
|
|
|
# Versuch über die Domain
|
|
git clone http://git.langhei.de/Entwicklung/xxx-sphere-web.git . || \
|
|
# FALLBACK: Versuch über die IP direkt, falls DNS im Container hakt
|
|
git clone http://192.168.178.93:3000/Entwicklung/xxx-sphere-web.git .
|
|
|
|
git config --global http.sslVerify false
|
|
git checkout master
|
|
|
|
- name: Build and Deploy (LXC-Safe)
|
|
run: |
|
|
# 1. Java 21 im Runner-Container installieren
|
|
if command -v apt-get >/dev/null; then
|
|
apt-get update && apt-get install -y openjdk-21-jdk-headless
|
|
elif command -v apk >/dev/null; then
|
|
apk add --no-cache openjdk21
|
|
fi
|
|
|
|
# 2. JAVA_HOME setzen
|
|
export JAVA_HOME=$(java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' | awk '{print $3}')
|
|
export PATH=$JAVA_HOME/bin:$PATH
|
|
|
|
# 3. Das JAR-File bauen (Hier brauchen wir noch kein Docker!)
|
|
chmod +x gradlew
|
|
./gradlew bootJar
|
|
|
|
# 4. Docker-Socket Berechtigung (für den finalen Build)
|
|
chmod 666 /var/run/docker.sock
|
|
|
|
# 5. Das Image klassisch bauen
|
|
# Wir suchen das gebaute JAR und bauen das Image
|
|
docker build -t xxx-sphere-web:latest .
|
|
|
|
# 6. Container starten
|
|
# Wir nutzen 'docker-compose' (mit Bindestrich) oder den Standard-Docker-Befehl
|
|
if command -v docker-compose >/dev/null; then
|
|
docker-compose up -d --force-recreate
|
|
else
|
|
# Fallback, falls compose fehlt: Alten Container stoppen und neu starten
|
|
docker stop xxx-sphere-web || true
|
|
docker rm xxx-sphere-web || true
|
|
docker run -d --name xxx-sphere-web -p 8080:8080 xxx-sphere-web:latest
|
|
fi
|
|
|
|
- name: Deploy Container
|
|
run: |
|
|
docker compose up -d --force-recreate
|