Files
Compass/backend/api/deploy-api.sh
MartinBraquet 9caac159e1 Move backend from VM to Cloud Run and remove Load Balancer
Both to save lots of $$$
2026-05-11 16:01:12 +02:00

56 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -e
cd "$(dirname "$0")"
source ../../.env
ENV=${1:-prod}
# Config
REGION="us-west1"
ZONE="us-west1-b"
PROJECT="compass-130ba"
SERVICE_NAME="api"
GIT_REVISION=$(git rev-parse --short HEAD)
GIT_COMMIT_DATE=$(git log -1 --format=%ci)
GIT_COMMIT_AUTHOR=$(git log -1 --format='%an')
GIT_COMMIT_MESSAGE=$(git log -1 --format='%s')
echo "Git commit message: ${GIT_COMMIT_MESSAGE}"
cat > metadata.json << EOF
{
"git": {
"revision": "${GIT_REVISION}",
"commitDate": "${GIT_COMMIT_DATE}",
"author": "${GIT_COMMIT_AUTHOR}",
"message": "${GIT_COMMIT_MESSAGE}"
}
}
EOF
TIMESTAMP=$(date +"%s")
IMAGE_TAG="${TIMESTAMP}-${GIT_REVISION}"
IMAGE_URL="${REGION}-docker.pkg.dev/${PROJECT}/builds/${SERVICE_NAME}:${IMAGE_TAG}"
echo "🚀 Building & Pushing Image..."
yarn build
gcloud auth print-access-token | docker login -u oauth2accesstoken --password-stdin ${REGION}-docker.pkg.dev
gcloud auth configure-docker ${REGION}-docker.pkg.dev --quiet
docker build . --tag ${IMAGE_URL} --platform linux/amd64
docker push ${IMAGE_URL}
# Update Cloud Run (The fast way)
# This keeps all the Terraform-defined settings (env vars, memory, etc.)
# but simply swaps the container image.
gcloud run deploy ${SERVICE_NAME} \
--image ${IMAGE_URL} \
--region ${REGION} \
--platform managed \
--quiet
echo "Custom Domain: https://api.compassmeet.com"
echo "✅ Code updated on Cloud Run!"