name: Build-und-Deploy on: push: branches: - master jobs: build: # Nutzen Sie das Runner-Label, das Ihr Gitea-Runner anbietet runs-on: ubuntu-latest steps: - name: 📥 Repository auschecken uses: actions/checkout@v4 # JDK 21 bereitstellen (systemweit für diesen Job) + Gradle-Cache aktivieren - name: ☕️ Set up JDK 21 uses: actions/setup-java@v4 with: distribution: temurin java-version: '21' cache: gradle # Defekte, zuvor heruntergeladene Toolchains löschen (wir nutzen das systemweite JDK 21) - name: 🧹 Gradle-Toolchains bereinigen run: rm -rf ~/.gradle/jdks ~/.gradle/.tmp/jdks # Auto-Download der Toolchain ausdrücklich deaktivieren, damit kein Foojay-Download mehr erfolgt - name: ⚙️ Gradle-Konfiguration setzen run: | mkdir -p ~/.gradle { echo "org.gradle.java.installations.auto-detect=true" echo "org.gradle.java.installations.auto-download=false" } > ~/.gradle/gradle.properties # Optional: einmal anzeigen, welche JDKs Gradle sieht (zu Diagnosezwecken) - name: 🔎 Sichtbare Java-Toolchains run: ./gradlew -q javaToolchains || true - name: 🛠 Baue das Projekt (ohne Tests) run: ./gradlew clean build -x test - name: 📦 JAR ins Shared Volume kopieren und archivieren run: | mkdir -p /shared_jar_data /shared_jar_data/archive timestamp=$(date +"%Y%m%d-%H%M%S") cp build/libs/MyTimeTracker-0.0.1-SNAPSHOT.jar /shared_jar_data/MyTimeTracker-0.0.1-SNAPSHOT.jar cp build/libs/MyTimeTracker-0.0.1-SNAPSHOT.jar /shared_jar_data/archive/MyTimeTracker-$timestamp.jar - name: 🚦 Neustart der Anwendung triggern run: | mkdir -p /shared_trigger_dir touch /shared_trigger_dir/restart-requested