# First deploy on Google Cloud

A step of the [Cloud application](https://gradus.kazet.blog/tree/cloud-application) tree on Gradus, in the Environment setup area: First commit to first deploy.

Page: https://gradus.kazet.blog/tree/cloud-application/step/deploy-gcp

Deploy the image to Cloud Run from CI on every merge to main, authenticated with Workload Identity Federation rather than a key, behind a public HTTPS URL.

One option of Cloud provider: Google Cloud. The others: AWS.

Usually comes after: [Choose where to run](https://gradus.kazet.blog/tree/cloud-application/step/choose-cloud).

## Prompt for your AI assistant

```
Deploy this project's container image to Google Cloud Run from the CI workflow on every merge to the main branch: create a project, enable the required APIs, push the image to Artifact Registry, set up Workload Identity Federation so the workflow authenticates with a short-lived token and no service account key, pass configuration through environment variables and expose a public HTTPS URL. Cap the service at a small maximum number of instances, so a spike or a loop cannot run up the bill. Add the project id and the service URL to the cloud provider decision record.
```

Every step of the tree: https://gradus.kazet.blog/tree/cloud-application/llms.txt
