From b1202577a83f704437df2081068c63126d4ee0b9 Mon Sep 17 00:00:00 2001 From: nilzbu Date: Sat, 9 Aug 2025 16:43:59 +0200 Subject: [PATCH] pipeline --- .gitea/workflows/buildAndDeply.yaml | 53 ++++++++--------------------- 1 file changed, 14 insertions(+), 39 deletions(-) diff --git a/.gitea/workflows/buildAndDeply.yaml b/.gitea/workflows/buildAndDeply.yaml index 44c2e91..59bb1b7 100644 --- a/.gitea/workflows/buildAndDeply.yaml +++ b/.gitea/workflows/buildAndDeply.yaml @@ -2,49 +2,34 @@ name: Build-und-Deploy on: push: - branches: - - master + branches: [ master ] jobs: build: runs-on: ubuntu-latest - steps: - # 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 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 nutzt Vite/pnpm) - corepack enable - corepack prepare pnpm@latest --activate - pnpm -v + # >>> Alle Steps laufen in DIESEM Container (mit Java21/Node20/Git/Bash/pnpm) + container: + image: java21-node20-bash:latest + steps: - name: 📥 Repository auschecken uses: actions/checkout@v4 - name: 🔎 Volumes & Umgebung prüfen - shell: bash run: | - set -x + set -e echo "PWD=$(pwd)" java -version + node -v + pnpm -v which bash || true - ls -la - # Volumes sichtbar? + # Volumes (vom Runner per config.yaml in den Job gemountet) ls -ld /shared_jar_data || true ls -ld /shared_trigger_dir || true - - - 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 - shell: bash run: | rm -rf ~/.gradle/jdks ~/.gradle/.tmp/jdks mkdir -p ~/.gradle @@ -53,23 +38,18 @@ jobs: echo "org.gradle.java.installations.auto-download=false" } > ~/.gradle/gradle.properties - # Diagnose: zeigt Java/Gradle-Setup im Job-Container - name: 🔎 Umgebung prüfen - shell: bash run: | - set -euo pipefail - echo "PWD=$(pwd)" - java -version + set -e ./gradlew -v ./gradlew -q javaToolchains || true ls -la - name: 🛠 Baue das Projekt (ohne Tests) - shell: bash env: CI: "true" run: | - set -euo pipefail + set -e test -f ./gradlew || { echo "❌ gradlew fehlt"; exit 1; } chmod +x ./gradlew || true ./gradlew clean build -x test --no-daemon --info --stacktrace @@ -77,21 +57,17 @@ jobs: ls -l build/libs || true - name: 📦 JAR ins Shared Volume kopieren und archivieren - shell: bash run: | - set -euo pipefail - # Falls der Name variiert, greifen wir den ersten SNAPSHOT-Jar + set -e 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:" @@ -100,8 +76,7 @@ jobs: ls -l /shared_jar_data/archive || true - name: 🚦 Neustart der Anwendung triggern - shell: bash run: | - set -euo pipefail + set -e mkdir -p /shared_trigger_dir touch /shared_trigger_dir/restart-requested