actions-marketplace-validations/Deploy to Cloud Run
Use this action to deploy a container or source code to Google Cloud Run.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Maintainedlast commit Sep 3, 2025
- License
- Apache 2.0
Pinned Snippet
uses: actions-marketplace-validations/google-github-actions_deploy-cloudrun@2028e2d7d30a78c6910e0632e48dd561b064884d # no releases — HEAD as of 2026-07-10tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| service | ID of the service or fully-qualified identifier of the service. This is required unless providing `metadata` or `job`. | no | — |
| job | ID of the job or fully-qualified identifier of the job. This is required unless providing `metadata` or `service`. | no | — |
| metadata | YAML service description for the Cloud Run service. This is required unless providing `service` or `job`. | no | — |
| image | (Required, unless providing `metadata` or `source`) Fully-qualified name of the container image to deploy. For example: us-docker.pkg.dev/cloudrun/container/hello:latest or us-docker.pkg.dev/my-project/my-container/image:1.2.3 | no | — |
| source | (Required, unless providing `metadata`, `image`, or `job`) Path to source to deploy. If specified, this will deploy the Cloud Run service from the code specified at the given source directory. Learn more about the required permissions in [Deploying from source code](https://cloud.google.com/run/docs/deploying-source-code). | no | — |
| suffix | String suffix to append to the revision name. Revision names always start with the service name automatically. For example, specifying `v1` for a service named `helloworld`, would lead to a revision named `helloworld-v1`. This option only applies to services. | no | — |
| env_vars | List of environment variables that should be set in the environment. These are comma-separated or newline-separated `KEY=VALUE`. Keys or values that contain separators must be escaped with a backslash (e.g. `\,` or `\\n`) unless quoted. Any leading or trailing whitespace is trimmed unless values are quoted. ```yaml env_vars: |- FRUIT=apple SENTENCE=" this will retain leading and trailing spaces " ``` This value will only be set if the input is a non-empty value. If a non-empty value is given, the field values will be overwritten (not merged). To remove all values, set the value to the literal string `{}`. If both `env_vars` and `env_vars_file` are specified, the keys in `env_vars` will take precedence over the keys in `env_vars_file`. | no | — |
| env_vars_update_strategy | Controls how the environment variables are set on the Cloud Run service. If set to "merge", then the environment variables are _merged_ with any upstream values. If set to "overwrite", then all environment variables on the Cloud Run service will be replaced with exactly the values given by the GitHub Action (making it authoritative). | yes | merge |
| secrets | List of KEY=VALUE pairs to use as secrets. These are comma-separated or newline-separated `KEY=VALUE`. Keys or values that contain separators must be escaped with a backslash (e.g. `\,` or `\\n`) unless quoted. Any leading or trailing whitespace is trimmed unless values are quoted. These can either be injected as environment variables or mounted as volumes. Keys starting with a forward slash '/' are mount paths. All other keys correspond to environment variables: ```yaml with: secrets: |- # As an environment variable: KEY1=secret-key-1:latest # As a volume mount: /secrets/api/key=secret-key-2:latest ``` This value will only be set if the input is a non-empty value. If a non-empty value is given, the field values will be overwritten (not merged). To remove all values, set the value to the literal string `{}`. | no | — |
| secrets_update_strategy | Controls how the secrets are set on the Cloud Run service. If set to `merge`, then the secrets are merged with any upstream values. If set to `overwrite`, then all secrets on the Cloud Run service will be replaced with exactly the values given by the GitHub Action (making it authoritative). | yes | merge |
| labels | List of labels that should be set on the function. These are comma-separated or newline-separated `KEY=VALUE`. Keys or values that contain separators must be escaped with a backslash (e.g. `\,` or `\\n`) unless quoted. Any leading or trailing whitespace is trimmed unless values are quoted. ```yaml labels: |- labela=my-label labelb=my-other-label ``` This value will only be set if the input is a non-empty value. If a non-empty value is given, the field values will be overwritten (not merged). To remove all values, set the value to the literal string `{}`. Google Cloud restricts the allowed values and length for labels. Please see the Google Cloud documentation for labels for more information. | no | — |
| skip_default_labels | Skip applying the special annotation labels that indicate the deployment came from GitHub Actions. The GitHub Action will automatically apply the following labels which Cloud Run uses to enhance the user experience: managed-by: github-actions commit-sha: <sha> Setting this to `true` will skip adding these special labels. | no | false |
| tag | Traffic tag to assign to the newly-created revision. This option only applies to services. | no | — |
| timeout | Maximum request execution time, specified as a duration like "10m5s" for ten minutes and 5 seconds. | no | — |
| flags | Space separate list of additional Cloud Run flags to pass to the deploy command. This can be used to apply advanced features that are not exposed via this GitHub Action. For Cloud Run services, this command will be `gcloud run deploy`. For Cloud Run jobs, this command will be `gcloud jobs deploy`. ```yaml with: flags: '--add-cloudsql-instances=...' ``` Flags that include other flags must quote the _entire_ outer flag value. For example, to pass `--args=-X=123`: ```yaml with: flags: '--add-cloudsql-instances=... "--args=-X=123"' ``` See the [complete list of flags](https://cloud.google.com/sdk/gcloud/reference/run/deploy#FLAGS) for more information. Please note, this GitHub Action does not parse or validate the flags. You are responsible for making sure the flags are available on the gcloud version and subcommand. | no | — |
| no_traffic | If true, the newly deployed revision will not receive traffic. This option only applies to services. | no | false |
| wait | If true, the action will execute and wait for the job to complete before exiting. This option only applies to jobs. | no | false |
| revision_traffic | Comma-separated list of revision traffic assignments. ```yaml with: revision_traffic: 'my-revision=10' # percentage ``` To update traffic to the latest revision, use the special tag "LATEST": ```yaml with: revision_traffic: 'LATEST=100' ``` This is mutually-exclusive with `tag_traffic`. This option only applies to services. | no | — |
| tag_traffic | Comma-separated list of tag traffic assignments. ```yaml with: tag_traffic: 'my-tag=10' # percentage ``` This is mutually-exclusive with `revision_traffic`. This option only applies to services. | no | — |
| update_traffic_flags | Space separate list of additional Cloud Run flags to pass to the `gcloud run services update-traffic` command. This can be used to apply advanced features that are not exposed via this GitHub Action. This flag only applies when `revision_traffic` or `tag_traffic` is set. ```yaml with: traffic_flags: '--set-tags=...' ``` Flags that include other flags must quote the _entire_ outer flag value. For example, to pass `--args=-X=123`: ```yaml with: flags: '--set-tags=... "--args=-X=123"' ``` See the [complete list of flags](https://cloud.google.com/sdk/gcloud/reference/run/services/update#FLAGS) for more information. Please note, this GitHub Action does not parse or validate the flags. You are responsible for making sure the flags are available on the gcloud version and subcommand. | no | — |
| project_id | ID of the Google Cloud project in which to deploy the service. | no | — |
| region | Region in which the Cloud Run services are deployed. | no | us-central1 |
| gcloud_version | Version of the Cloud SDK to install. If unspecified or set to "latest", the latest available gcloud SDK version for the target platform will be installed. Example: "290.0.1". | no | — |
| gcloud_component | Version of the Cloud SDK components to install and use. | no | — |
Outputs
| name | description |
|---|---|
| url | The URL of the Cloud Run service. |