66 lines
1.6 KiB
Bash
Executable File
66 lines
1.6 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 ===
|
|
WAITED=0
|
|
echo "[WAIT] Oczekiwanie na nową wersję..."
|
|
|
|
while true; do
|
|
sleep $CHECK_INTERVAL
|
|
WAITED=$((WAITED + 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))
|
|
|
|
# Nadpisujemy linię z licznikiem
|
|
printf "\r[INFO] Nowa wersja wdrożona po %ds: %s\n" "$WAITED" "$NEW_VERSION"
|
|
echo "[INFO] Czas wdrożenia: $DURATION sekund"
|
|
|
|
echo "$START_TIME,$END_TIME,$DURATION,$OLD_VERSION,$NEW_VERSION" >> "$OUTPUT_FILE"
|
|
break
|
|
else
|
|
# Nadpisujemy TYLKO linię z licznikiem
|
|
printf "\r[WAIT] Czekam... %ds" "$WAITED"
|
|
fi
|
|
done
|
|
|
|
# Żeby kursor przeszedł do nowej linii po zakończeniu
|
|
echo ""
|