#!/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