feat: add cloudbuild.yaml for CI/CD auto-deploy on push to main
This commit is contained in:
parent
ffe4ec1c63
commit
14910e2fa2
|
|
@ -1,71 +1,52 @@
|
||||||
# cloudbuild.yaml — Cloud Build CI/CD pipeline for OSVauco ADK agent
|
# cloudbuild.yaml — Auto-build and deploy osvauco-agent on push to main
|
||||||
# Triggered on push to main branch
|
|
||||||
# Stages: install + test → eval gate → build image → push → deploy to Cloud Run
|
|
||||||
|
|
||||||
substitutions:
|
|
||||||
_PROJECT_ID: propane-will-491900-m5
|
|
||||||
_REGION: us-central1
|
|
||||||
_SERVICE_NAME: oavauco-agent-v1
|
|
||||||
_AR_REPO: oavauco-docker
|
|
||||||
_IMAGE: ${_REGION}-docker.pkg.dev/${_PROJECT_ID}/${_AR_REPO}/oavauco-agent:${SHORT_SHA}
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'python:3.12-slim'
|
# Step 1: Build Docker image
|
||||||
id: 'install-and-test'
|
|
||||||
entrypoint: bash
|
|
||||||
args:
|
|
||||||
- '-c'
|
|
||||||
- |
|
|
||||||
pip install -r agents/core-logic/requirements.txt --quiet
|
|
||||||
if [ -d "agents/tests/unit" ]; then
|
|
||||||
python -m pytest agents/tests/unit/ -v
|
|
||||||
fi
|
|
||||||
echo "Install + tests complete."
|
|
||||||
|
|
||||||
- name: 'python:3.12-slim'
|
|
||||||
id: 'eval-gate'
|
|
||||||
entrypoint: bash
|
|
||||||
env:
|
|
||||||
- 'GOOGLE_CLOUD_PROJECT=${_PROJECT_ID}'
|
|
||||||
- 'GOOGLE_CLOUD_LOCATION=${_REGION}'
|
|
||||||
- 'GOOGLE_GENAI_USE_VERTEXAI=True'
|
|
||||||
args:
|
|
||||||
- '-c'
|
|
||||||
- |
|
|
||||||
pip install google-cloud-aiplatform[evaluation] --quiet
|
|
||||||
python agents/eval/run_eval.py
|
|
||||||
|
|
||||||
- name: 'gcr.io/cloud-builders/docker'
|
- name: 'gcr.io/cloud-builders/docker'
|
||||||
id: 'build-image'
|
|
||||||
args:
|
args:
|
||||||
- 'build'
|
- 'build'
|
||||||
- '-t'
|
- '-t'
|
||||||
- '${_IMAGE}'
|
- '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_ARTIFACT_REPO}/osvauco-agent:$COMMIT_SHA'
|
||||||
- '-f'
|
- '-t'
|
||||||
- 'agents/core-logic/Dockerfile'
|
- '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_ARTIFACT_REPO}/osvauco-agent:latest'
|
||||||
- 'agents/core-logic'
|
- 'agents/core-logic'
|
||||||
|
|
||||||
|
# Step 2: Push image
|
||||||
- name: 'gcr.io/cloud-builders/docker'
|
- name: 'gcr.io/cloud-builders/docker'
|
||||||
id: 'push-image'
|
args:
|
||||||
args: ['push', '${_IMAGE}']
|
- 'push'
|
||||||
|
- '--all-tags'
|
||||||
|
- '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_ARTIFACT_REPO}/osvauco-agent'
|
||||||
|
|
||||||
- name: 'gcr.io/cloud-builders/gcloud'
|
# Step 3: Deploy to Cloud Run
|
||||||
id: 'deploy-cloud-run'
|
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
|
||||||
|
entrypoint: gcloud
|
||||||
args:
|
args:
|
||||||
- 'run'
|
- 'run'
|
||||||
- 'deploy'
|
- 'deploy'
|
||||||
- '${_SERVICE_NAME}'
|
- '${_CLOUD_RUN_SERVICE}'
|
||||||
- '--image=${_IMAGE}'
|
- '--image=${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_ARTIFACT_REPO}/osvauco-agent:$COMMIT_SHA'
|
||||||
- '--region=${_REGION}'
|
- '--region=${_REGION}'
|
||||||
- '--project=${_PROJECT_ID}'
|
- '--project=${PROJECT_ID}'
|
||||||
- '--service-account=vertex-agent-sa@${_PROJECT_ID}.iam.gserviceaccount.com'
|
- '--service-account=${_AGENT_SA}'
|
||||||
|
- '--set-env-vars=GOOGLE_CLOUD_PROJECT=${PROJECT_ID},GOOGLE_CLOUD_LOCATION=${_REGION},GOOGLE_GENAI_USE_VERTEXAI=True'
|
||||||
- '--no-allow-unauthenticated'
|
- '--no-allow-unauthenticated'
|
||||||
|
- '--port=8080'
|
||||||
|
- '--memory=1Gi'
|
||||||
|
- '--cpu=1'
|
||||||
- '--min-instances=0'
|
- '--min-instances=0'
|
||||||
- '--platform=managed'
|
- '--max-instances=3'
|
||||||
- '--quiet'
|
- '--quiet'
|
||||||
|
|
||||||
images:
|
substitutions:
|
||||||
- '${_IMAGE}'
|
_REGION: us-central1
|
||||||
|
_ARTIFACT_REPO: osvauco-repo
|
||||||
|
_CLOUD_RUN_SERVICE: osvauco-agent
|
||||||
|
_AGENT_SA: osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com
|
||||||
|
|
||||||
options:
|
options:
|
||||||
logging: CLOUD_LOGGING_ONLY
|
logging: CLOUD_LOGGING_ONLY
|
||||||
|
machineType: E2_HIGHCPU_8
|
||||||
|
|
||||||
|
images:
|
||||||
|
- '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_ARTIFACT_REPO}/osvauco-agent:$COMMIT_SHA'
|
||||||
|
- '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_ARTIFACT_REPO}/osvauco-agent:latest'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user