55 lines
1.4 KiB
Bash
Executable File
55 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# === KONFIGURACJA ===
|
|
APP_URL="https://user-microservice.marcin00.pl/version"
|
|
MARKER_FILE="version_marker.txt"
|
|
OUTPUT_FILE="deployment_times.csv"
|
|
CHECK_INTERVAL=1 # sekundy
|
|
|
|
# === POBRANIE AKTUALNEJ WERSJI APLIKACJI ===
|
|
echo "[INFO] Pobieranie aktualnej wersji z /version..."
|
|
OLD_VERSION=$(curl -s "$APP_URL" | jq -r '.version')
|
|
|
|
if [[ -z "$OLD_VERSION" ]]; then
|
|
echo "[ERROR] Nie udało się pobrać aktualnej wersji aplikacji."
|
|
exit 1
|
|
fi
|
|
|
|
echo "[INFO] Aktualna wersja: $OLD_VERSION"
|
|
|
|
# === Modyfikacja pliku, commit i push ===
|
|
TIMESTAMP=$(date +%s)
|
|
echo "$TIMESTAMP" > "$MARKER_FILE"
|
|
|
|
git add "$MARKER_FILE"
|
|
git commit -m "Automatyczna zmiana: $TIMESTAMP"
|
|
START_TIME=$(date +%s)
|
|
|
|
echo "[INFO] Wykonuję git push..."
|
|
git push
|
|
|
|
if [[ $? -ne 0 ]]; then
|
|
echo "[ERROR] Push nie powiódł się."
|
|
exit 1
|
|
fi
|
|
|
|
echo "[INFO] Oczekiwanie na wdrożenie nowej wersji..."
|
|
|
|
# === Odpytywanie endpointa /version ===
|
|
while true; do
|
|
sleep $CHECK_INTERVAL
|
|
NEW_VERSION=$(curl -s "$APP_URL" | jq -r '.version')
|
|
|
|
if [[ "$NEW_VERSION" != "$OLD_VERSION" ]]; then
|
|
END_TIME=$(date +%s)
|
|
DURATION=$((END_TIME - START_TIME))
|
|
echo "[INFO] Nowa wersja wdrożona: $NEW_VERSION"
|
|
echo "[INFO] Czas wdrożenia: $DURATION sekund"
|
|
|
|
echo "$START_TIME,$END_TIME,$DURATION,$OLD_VERSION,$NEW_VERSION" >> "$OUTPUT_FILE"
|
|
break
|
|
else
|
|
echo "[WAIT] Czekam... ($NEW_VERSION)"
|
|
fi
|
|
done
|