65 lines
2.0 KiB
Bash
Executable File
65 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# watch-build.sh - Velg en Cloud Build trigger, kjør den og stream loggen live.
|
|
|
|
set -euo pipefail
|
|
|
|
PROJECT_ID="${PROJECT_ID:-propane-will-491900-m5}"
|
|
REGION="${REGION:-us-central1}"
|
|
|
|
# Farger for output
|
|
GREEN="$(tput setaf 2 2>/dev/null || true)"
|
|
RED="$(tput setaf 1 2>/dev/null || true)"
|
|
YELLOW="$(tput setaf 3 2>/dev/null || true)"
|
|
CYAN="$(tput setaf 6 2>/dev/null || true)"
|
|
BOLD="$(tput bold 2>/dev/null || true)"
|
|
NC="$(tput sgr0 2>/dev/null || true)"
|
|
|
|
# Hent tilgjengelige triggers
|
|
TRIGGERS=($(gcloud builds triggers list --project="$PROJECT_ID" --region="$REGION" --format="value(name)"))
|
|
if [ ${#TRIGGERS[@]} -eq 0 ]; then
|
|
echo -e "${RED}Fant ingen build triggers i $PROJECT_ID i region $REGION.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
TRIGGER_NAME="${1:-}"
|
|
|
|
# Hvis ingen trigger er gitt som argument, vis en meny
|
|
if [ -z "$TRIGGER_NAME" ]; then
|
|
echo -e "${BOLD}Velg en Cloud Build trigger:${NC}"
|
|
select T_NAME in "${TRIGGERS[@]}"; do
|
|
if [ -n "$T_NAME" ]; then
|
|
TRIGGER_NAME="$T_NAME"
|
|
break
|
|
else
|
|
echo -e "${YELLOW}Ugyldig valg. Prøv igjen.${NC}"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
echo -e "
|
|
${CYAN}Kjører trigger: ${BOLD}$TRIGGER_NAME${NC} på branch 'main'..."
|
|
|
|
# Kjør trigger og hent build-ID
|
|
BUILD_ID=$(gcloud builds triggers run "$TRIGGER_NAME" --project="$PROJECT_ID" --region="$REGION" --branch=main --format="value(id)")
|
|
|
|
if [ -z "$BUILD_ID" ]; then
|
|
echo -e "${RED}Klarte ikke å starte build eller hente build-ID.${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}Build startet! ID: ${BOLD}$BUILD_ID${NC}"
|
|
echo -e "--- Streaming logs ---
|
|
"
|
|
|
|
START_TIME=$(date +%s)
|
|
gcloud builds log --stream "$BUILD_ID" --project="$PROJECT_ID" --region="$REGION"
|
|
|
|
FINAL_STATUS=$(gcloud builds describe "$BUILD_ID" --project="$PROJECT_ID" --region="$REGION" --format="value(status)")
|
|
END_TIME=$(date +%s)
|
|
ELAPSED=$((END_TIME - START_TIME))
|
|
|
|
echo -e "
|
|
--- Build Complete ---"
|
|
echo -e "${BOLD}Status: $FINAL_STATUS | Tid: $((ELAPSED / 60))m $((ELAPSED % 60))s${NC}"
|
|
|
|
[ "$FINAL_STATUS" == "SUCCESS" ] |