Spaces:
Sleeping
Sleeping
| # CI/CD pipeline: build container images, push to Artifact Registry, deploy to Cloud Run. | |
| # Trigger this on push to `main` via a Cloud Build GitHub trigger. | |
| # | |
| # gcloud builds triggers create github \ | |
| # --repo-name=production-rag-langgraph --repo-owner=YOUR_ORG \ | |
| # --branch-pattern="^main$" --build-config=cloudbuild.yaml | |
| substitutions: | |
| _REGION: us-central1 | |
| _REPO: rag-repo | |
| _API_SERVICE: rag-api | |
| _FRONTEND_SERVICE: rag-frontend | |
| steps: | |
| # --- Build images --- | |
| - name: "gcr.io/cloud-builders/docker" | |
| args: | |
| - build | |
| - "-f" | |
| - Dockerfile.api | |
| - "-t" | |
| - "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO}/rag-api:$SHORT_SHA" | |
| - "." | |
| id: build-api | |
| - name: "gcr.io/cloud-builders/docker" | |
| args: | |
| - build | |
| - "-f" | |
| - Dockerfile.frontend | |
| - "-t" | |
| - "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO}/rag-frontend:$SHORT_SHA" | |
| - "." | |
| id: build-frontend | |
| # --- Push images --- | |
| - name: "gcr.io/cloud-builders/docker" | |
| args: ["push", "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO}/rag-api:$SHORT_SHA"] | |
| id: push-api | |
| - name: "gcr.io/cloud-builders/docker" | |
| args: ["push", "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO}/rag-frontend:$SHORT_SHA"] | |
| id: push-frontend | |
| # --- Deploy to Cloud Run --- | |
| - name: "gcr.io/google.com/cloudsdktool/cloud-sdk" | |
| entrypoint: gcloud | |
| args: | |
| - run | |
| - deploy | |
| - "${_API_SERVICE}" | |
| - "--image=${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO}/rag-api:$SHORT_SHA" | |
| - "--region=${_REGION}" | |
| - "--platform=managed" | |
| - "--allow-unauthenticated" | |
| id: deploy-api | |
| - name: "gcr.io/google.com/cloudsdktool/cloud-sdk" | |
| entrypoint: gcloud | |
| args: | |
| - run | |
| - deploy | |
| - "${_FRONTEND_SERVICE}" | |
| - "--image=${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO}/rag-frontend:$SHORT_SHA" | |
| - "--region=${_REGION}" | |
| - "--platform=managed" | |
| - "--allow-unauthenticated" | |
| id: deploy-frontend | |
| images: | |
| - "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO}/rag-api:$SHORT_SHA" | |
| - "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO}/rag-frontend:$SHORT_SHA" | |
| options: | |
| logging: CLOUD_LOGGING_ONLY | |