From 32dfb0d6b466500e3b67d9b2d951f1e706b2394b Mon Sep 17 00:00:00 2001 From: nilzbu Date: Sat, 9 Aug 2025 16:17:44 +0200 Subject: [PATCH] pipeline --- .gitea/workflows/buildAndDeply.yaml | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/buildAndDeply.yaml b/.gitea/workflows/buildAndDeply.yaml index c43f9f6..d5b88a2 100644 --- a/.gitea/workflows/buildAndDeply.yaml +++ b/.gitea/workflows/buildAndDeply.yaml @@ -10,15 +10,15 @@ jobs: runs-on: ubuntu-latest steps: - # Node 20 + Git für Node-Actions (checkout) und Vaadin/Vite - - name: 🧰 Node 20 & Git installieren + # Node 20 + Git + Bash (für shell: bash) – nötig für Node-Actions (checkout) & Vaadin + - name: 🧰 Node 20, Git & Bash installieren run: | apt-get update - apt-get install -y curl ca-certificates gnupg git + apt-get install -y curl ca-certificates gnupg git bash curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y nodejs node -v && npm -v && git --version - # pnpm via Corepack (Vaadin 24 nutzt Vite/pnpm) + # pnpm via Corepack (Vaadin nutzt Vite/pnpm) corepack enable corepack prepare pnpm@latest --activate pnpm -v @@ -29,8 +29,9 @@ jobs: - name: 🧼 IP-Adresse von Gitea zu /etc/hosts hinzufügen run: echo "172.26.0.2 gitea" >> /etc/hosts + # Gradle auf vorhandenes JDK 21 festnageln (kein Foojay-Download) - name: ⚙️ Gradle konfigurieren - working-directory: ${{ github.workspace }} + shell: bash run: | rm -rf ~/.gradle/jdks ~/.gradle/.tmp/jdks mkdir -p ~/.gradle @@ -39,19 +40,19 @@ jobs: echo "org.gradle.java.installations.auto-download=false" } > ~/.gradle/gradle.properties + # Diagnose: zeigt Java/Gradle-Setup im Job-Container - name: 🔎 Umgebung prüfen - working-directory: ${{ github.workspace }} + shell: bash run: | - set -x + set -euo pipefail echo "PWD=$(pwd)" - echo "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" java -version ./gradlew -v ./gradlew -q javaToolchains || true ls -la - name: 🛠 Baue das Projekt (ohne Tests) - working-directory: ${{ github.workspace }} + shell: bash env: CI: "true" run: | @@ -63,19 +64,21 @@ jobs: ls -l build/libs || true - name: 📦 JAR ins Shared Volume kopieren und archivieren - working-directory: ${{ github.workspace }} + shell: bash run: | set -euo pipefail - # Ersten SNAPSHOT-JAR greifen (falls der Name leicht variiert) + # Falls der Name variiert, greifen wir den ersten SNAPSHOT-Jar JAR="$(ls -1 build/libs/*-SNAPSHOT.jar 2>/dev/null | head -n1)" - if [ -z "${JAR:-}" ] || [ ! -f "$JAR" ]; then + if [[ -z "${JAR:-}" || ! -f "$JAR" ]]; then echo "❌ Kein JAR in build/libs gefunden"; exit 1 fi mkdir -p /shared_jar_data /shared_jar_data/archive timestamp=$(date +"%Y%m%d-%H%M%S") + # Aktuelle Version bereitstellen cp "$JAR" /shared_jar_data/MyTimeTracker-0.0.1-SNAPSHOT.jar + # Archivkopie cp "$JAR" "/shared_jar_data/archive/MyTimeTracker-$timestamp.jar" echo "📂 /shared_jar_data:" @@ -84,6 +87,8 @@ jobs: ls -l /shared_jar_data/archive || true - name: 🚦 Neustart der Anwendung triggern + shell: bash run: | + set -euo pipefail mkdir -p /shared_trigger_dir touch /shared_trigger_dir/restart-requested