#!/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(metadata.build.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 beta 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" ]