Files
mytimetracker/.gitea/workflows/buildAndDeply.yaml
nilzbu 13d8970b7a
All checks were successful
Build-und-Deploy / build (push) Successful in 1m36s
pipeline
2025-08-09 18:57:36 +02:00

91 lines
2.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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