name: Build-und-Deploy on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: # Node 20 + git bereitstellen, damit "uses: actions/checkout" laufen kann - name: 🧰 Node 20 & Git installieren run: | apt-get update apt-get install -y curl ca-certificates gnupg git curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y nodejs node -v && npm -v && git --version - name: 📥 Repository auschecken uses: actions/checkout@v4 - name: 🧼 IP-Adresse von Gitea zu /etc/hosts hinzufügen run: echo "172.26.0.2 gitea" >> /etc/hosts # Gradle so konfigurieren, dass das vorhandene JDK 21 genutzt wird (kein Toolchain-Download) - name: ⚙️ Gradle konfigurieren run: | rm -rf ~/.gradle/jdks ~/.gradle/.tmp/jdks mkdir -p ~/.gradle { echo "org.gradle.java.installations.auto-detect=true" echo "org.gradle.java.installations.auto-download=false" } > ~/.gradle/gradle.properties - 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