name: Build-und-Deploy on: push: branches: [ master ] jobs: build: runs-on: ubuntu-latest container: image: ci-java21-node20:latest steps: - name: Map gitea into /etc/hosts (ohne ip) if: ${{ always() }} shell: bash run: | set -euo pipefail gw_hex="$(awk '$2=="00000000" {print $3; exit}' /proc/net/route || true)" if [ -n "${gw_hex:-}" ]; then gw="$(printf "%d.%d.%d.%d" 0x${gw_hex:6:2} 0x${gw_hex:4:2} 0x${gw_hex:2:2} 0x${gw_hex:0:2})" else gw="172.17.0.1" fi echo "$gw gitea" >> /etc/hosts echo "$gw host.docker.internal" >> /etc/hosts || true getent hosts gitea || true - name: "Preflight: gitea erreichbar?" if: ${{ always() }} continue-on-error: true shell: bash run: | set -euxo pipefail echo "== /etc/hosts ==" tail -n +1 /etc/hosts echo "== DNS ==" getent hosts gitea || true getent hosts host.docker.internal || true echo "== HTTP-Check (curl) ==" for url in "http://gitea:3000/api/v1/version" "http://gitea:3000" "http://host.docker.internal:3000"; do echo "Teste: $url" # 5s Timeout, nur Status anzeigen if curl -fsS -m 5 -o /dev/null -w "OK HTTP %{http_code} von %{remote_ip}\n" "$url"; then echo "Erreichbar: $url" break else echo "Nicht erreichbar: $url" || true fi done - name: Checkout uses: actions/checkout@v4 - name: Write marker into shared volume if: ${{ always() }} shell: bash run: | set -euxo pipefail date | tee /shared_jar_data/PROBE_MARKER.txt ls -ld /shared_jar_data /shared_trigger_dir || true - name: 🧰 Gradle vorbereiten & Version shell: bash run: | set -euxo pipefail if [ ! -f ./gradlew ]; then echo "gradlew fehlt – bitte lokal einmal 'gradle wrapper' ausführen und committen."; exit 1 fi chmod +x ./gradlew ./gradlew --version - name: 🏗️ Build (ohne Tests) shell: bash run: | set -euxo pipefail ./gradlew clean build -x test --no-daemon ls -al build/libs - name: 📦 JAR ins Shared-Volume kopieren shell: bash run: | set -euxo pipefail ts="$(date +'%Y%m%d-%H%M%S')" mkdir -p /shared_jar_data/archive src="$(ls -1 build/libs/*.jar | head -n1)" cp "$src" "/shared_jar_data/MyTimeTracker-${ts}.jar" cp "$src" "/shared_jar_data/archive/MyTimeTracker-${ts}.jar" echo "Kopiert: $src -> /shared_jar_data/MyTimeTracker-${ts}.jar" ls -al /shared_jar_data | tail -n +1