104 lines
2.4 KiB
Bash
Executable File
104 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "${ROOT_DIR}"
|
|
|
|
PROJECT_ID="propane-will-491900-m5"
|
|
REGION="us-central1"
|
|
REPOSITORY="us-central1-docker.pkg.dev/${PROJECT_ID}/osvauco-repo"
|
|
MCP_SERVICE="opax-mcp"
|
|
MCP_IMAGE="${REPOSITORY}/opax-mcp"
|
|
|
|
echo "==> Submitting MCP Cloud Build"
|
|
|
|
BUILD_ID="$(
|
|
gcloud builds submit \
|
|
--async \
|
|
--project="${PROJECT_ID}" \
|
|
--region="${REGION}" \
|
|
--config="cloudbuild.deploy.yaml" \
|
|
--format="value(id)" \
|
|
.
|
|
)"
|
|
|
|
if [[ -z "${BUILD_ID}" ]]; then
|
|
echo "ERROR: Cloud Build did not return a build ID." >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "==> Cloud Build ID: ${BUILD_ID}"
|
|
echo "==> Streaming Cloud Build logs"
|
|
|
|
set +e
|
|
gcloud builds log "${BUILD_ID}" \
|
|
--project="${PROJECT_ID}" \
|
|
--region="${REGION}" \
|
|
--stream
|
|
BUILD_LOG_EXIT_CODE=$?
|
|
set -e
|
|
|
|
BUILD_STATUS="$(
|
|
gcloud builds describe "${BUILD_ID}" \
|
|
--project="${PROJECT_ID}" \
|
|
--region="${REGION}" \
|
|
--format="value(status)"
|
|
)"
|
|
|
|
IMAGE_REF="$(
|
|
gcloud builds describe "${BUILD_ID}" \
|
|
--project="${PROJECT_ID}" \
|
|
--region="${REGION}" \
|
|
--format="value(results.images[0].name)"
|
|
)"
|
|
|
|
if [[ -z "${IMAGE_REF}" ]]; then
|
|
IMAGE_REF="${MCP_IMAGE}:${BUILD_ID}"
|
|
fi
|
|
|
|
if [[ "${IMAGE_REF}" == *@sha256:* ]]; then
|
|
DEPLOY_IMAGE="${IMAGE_REF}"
|
|
else
|
|
IMAGE_DIGEST="$(
|
|
gcloud artifacts docker images describe "${IMAGE_REF}" \
|
|
--project="${PROJECT_ID}" \
|
|
--format="value(image_summary.digest)"
|
|
)"
|
|
|
|
if [[ -z "${IMAGE_DIGEST}" ]]; then
|
|
echo "ERROR: No pushed MCP image digest was found." >&2
|
|
echo "Cloud Build status: ${BUILD_STATUS}" >&2
|
|
echo "Cloud Build log exit code: ${BUILD_LOG_EXIT_CODE}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
DEPLOY_IMAGE="${MCP_IMAGE}@${IMAGE_DIGEST}"
|
|
fi
|
|
|
|
echo "==> Cloud Build status: ${BUILD_STATUS}"
|
|
echo "==> Deploying immutable MCP image:"
|
|
echo "${DEPLOY_IMAGE}"
|
|
|
|
gcloud run deploy "${MCP_SERVICE}" \
|
|
--project="${PROJECT_ID}" \
|
|
--region="${REGION}" \
|
|
--image="${DEPLOY_IMAGE}" \
|
|
--quiet
|
|
|
|
echo
|
|
echo "==> Active MCP deployment"
|
|
|
|
gcloud run services describe "${MCP_SERVICE}" \
|
|
--project="${PROJECT_ID}" \
|
|
--region="${REGION}" \
|
|
--format="table(
|
|
metadata.name,
|
|
status.url,
|
|
status.latestReadyRevisionName,
|
|
status.traffic[0].revisionName,
|
|
spec.template.spec.containers[0].image
|
|
)"
|
|
|
|
echo
|
|
echo "MCP deployment complete."
|
|
echo "Cloud Build log exit code: ${BUILD_LOG_EXIT_CODE}" |