|
9 | 9 | GCP_PROJECT_NUMBER: "1088907247379" |
10 | 10 | GCP_WORKLOAD_IDENTITY_PROVIDER: projects/1088907247379/locations/global/workloadIdentityPools/github-actions/providers/github-main |
11 | 11 | GCP_WORKLOAD_IDENTITY_SERVICE_ACCOUNT: firstrade-platform-deploy@firstradequant.iam.gserviceaccount.com |
12 | | - GCP_CLOUD_BUILD_SERVICE_ACCOUNT: projects/firstradequant/serviceAccounts/firstrade-platform-build@firstradequant.iam.gserviceaccount.com |
| 12 | + GCP_RUNTIME_SERVICE_ACCOUNT: firstrade-platform-runtime@firstradequant.iam.gserviceaccount.com |
13 | 13 | GCP_ARTIFACT_REGISTRY_HOSTNAME: us-central1-docker.pkg.dev |
14 | 14 | GCP_ARTIFACT_REGISTRY_REPOSITORY: cloud-run-source-deploy |
15 | 15 |
|
@@ -115,16 +115,32 @@ jobs: |
115 | 115 | project_id: ${{ env.GCP_PROJECT_ID }} |
116 | 116 | version: ">= 416.0.0" |
117 | 117 |
|
118 | | - - name: Build and deploy Cloud Run image |
| 118 | + - name: Build, push, and deploy Cloud Run image |
119 | 119 | if: steps.deploy_config.outputs.enabled == 'true' |
120 | 120 | run: | |
121 | 121 | set -euo pipefail |
122 | 122 |
|
123 | | - gcloud builds submit . \ |
| 123 | + image_repo="${GCP_ARTIFACT_REGISTRY_HOSTNAME}/${GCP_PROJECT_ID}/${GCP_ARTIFACT_REGISTRY_REPOSITORY}/firstradeplatform/${CLOUD_RUN_SERVICE}" |
| 124 | + image="${image_repo}:${GITHUB_SHA}" |
| 125 | +
|
| 126 | + gcloud auth configure-docker "${GCP_ARTIFACT_REGISTRY_HOSTNAME}" --quiet |
| 127 | + docker build --pull -t "${image}" . |
| 128 | + docker push "${image}" |
| 129 | +
|
| 130 | + gcloud run deploy "${CLOUD_RUN_SERVICE}" \ |
124 | 131 | --project="${GCP_PROJECT_ID}" \ |
125 | | - --config=cloudbuild.yaml \ |
126 | | - --service-account="${GCP_CLOUD_BUILD_SERVICE_ACCOUNT}" \ |
127 | | - --substitutions="COMMIT_SHA=${GITHUB_SHA},REPO_NAME=firstradequant,_AR_HOSTNAME=${GCP_ARTIFACT_REGISTRY_HOSTNAME},_AR_PROJECT_ID=${GCP_PROJECT_ID},_AR_REPOSITORY=${GCP_ARTIFACT_REGISTRY_REPOSITORY},_DEPLOY_REGION=${CLOUD_RUN_REGION},_PLATFORM=managed,_SERVICE_NAME=${CLOUD_RUN_SERVICE}" |
| 132 | + --region="${CLOUD_RUN_REGION}" \ |
| 133 | + --platform=managed \ |
| 134 | + --image="${image}" \ |
| 135 | + --service-account="${GCP_RUNTIME_SERVICE_ACCOUNT}" \ |
| 136 | + --ingress=internal \ |
| 137 | + --max-instances=1 \ |
| 138 | + --concurrency=80 \ |
| 139 | + --memory=512Mi \ |
| 140 | + --cpu=1 \ |
| 141 | + --timeout=300s \ |
| 142 | + --labels="managed-by=github-actions,commit-sha=${GITHUB_SHA},github-run-id=${GITHUB_RUN_ID}" \ |
| 143 | + --quiet |
128 | 144 |
|
129 | 145 | - name: Check whether env sync is enabled |
130 | 146 | id: env_sync_config |
|
0 commit comments