deploys-app/Deploy to Deploys.app
Deploy to deploys.app via the deployment.deploy API. Supports every deploy argument the API accepts (image/site, networking, scaling, env, volumes, resources, access control, sidecars, …). Authenticate with a DEPLOYS_TOKEN or a service-account email/key — no CLI download, pure bash + curl.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 15, 2026
- License
- MIT
Pinned Snippet
uses: deploys-app/deploys-action@16080dc6692cfe7205515a95e8921317b66f4ef9 # v1.1.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| project | Project ID | yes | — |
| location | Deploy location ID (e.g. gke.cluster-rcf2) | yes | — |
| name | Deployment name | yes | — |
| image | Container image to deploy (e.g. ghcr.io/owner/repo@sha256:...). Required for container deployments; must be empty for type=Static. | no | "" |
| site | Static site release reference (site://bucket/project/name@<sha>). Required for type=Static; must be empty for container deployments. | no | "" |
| siteManifestDigest | Digest of the static-site manifest for the release (type=Static). | no | "" |
| type | Deployment type: WebService, Worker, CronJob, TCPService, InternalTCPService, or Static. Optional when updating an existing deployment (left unset = unchanged). | no | "" |
| port | Service port. Required for WebService, TCPService, InternalTCPService. | no | "" |
| protocol | WebService protocol: http, https, or h2c (WebService only). | no | "" |
| internal | Run a WebService as internal-only (true/false, WebService only). | no | "" |
| minReplicas | Autoscale minimum replicas (0-20). | no | "" |
| maxReplicas | Autoscale maximum replicas (0-20). | no | "" |
| env | Environment variables, one KEY=VALUE per line. Replaces the whole env set. | no | "" |
| addEnv | Env vars to add to the previous revision, one KEY=VALUE per line. | no | "" |
| removeEnv | Env var keys to remove, one per line or comma-separated. | no | "" |
| envGroups | Env groups to attach (replaces the set), one per line or comma-separated. Each must already exist in the project. | no | "" |
| addEnvGroups | Env groups to add, one per line or comma-separated. | no | "" |
| removeEnvGroups | Env groups to remove, one per line or comma-separated. | no | "" |
| command | Entrypoint override, one token per line (replaces the image CMD). | no | "" |
| args | Arguments override, one token per line. | no | "" |
| workloadIdentity | Workload identity name to bind to the deployment. | no | "" |
| pullSecret | Pull secret name for a private image registry. | no | "" |
| schedule | Cron schedule, 5 fields (CronJob only), e.g. "0 2 * * *". | no | "" |
| ttl | Auto-delete TTL. Integer seconds, or a duration <n>s|m|h|d (e.g. 7d). Set 0 to clear an existing TTL; leave empty to keep it unchanged. | no | "" |
| diskName | Persistent volume name to attach (enables the disk block). | no | "" |
| diskMountPath | Absolute container path to mount the disk (required with diskName). | no | "" |
| diskSubPath | Sub-path within the volume to mount (optional, must be relative). | no | "" |
| mountData | Config/data files to mount, as a JSON object mapping absolute container paths to file contents, e.g. {"/etc/app/config.yaml":"key: value"}. JSON is used (not KEY=VALUE) because values are file bodies that may span lines. | no | "" |
| cpuRequest | CPU request (e.g. 100m, 0.5). | no | "" |
| memoryRequest | Memory request (e.g. 128Mi, 512Mi). | no | "" |
| cpuLimit | CPU limit (e.g. 500m, 1). | no | "" |
| memoryLimit | Memory limit (e.g. 512Mi, 1Gi). | no | "" |
| accessRequireGoogleLogin | Require Google login to reach the deployment (true/false). Leave empty to keep the current access policy unchanged; set false to make it public. | no | "" |
| accessAllowedEmails | Allowed emails when access is required, one per line or comma-separated. | no | "" |
| accessAllowedDomains | Allowed email domains when access is required, one per line or comma-separated. Empty + requireGoogleLogin=true allows any Google user. | no | "" |
| cloudSqlProxyInstance | Cloud SQL instance connection name (enables a Cloud SQL Proxy sidecar). | no | "" |
| cloudSqlProxyPort | Port the Cloud SQL Proxy listens on (default 3300). | no | "" |
| cloudSqlProxyCredentials | Service-account JSON credentials for the Cloud SQL Proxy. | no | "" |
| extraArgs | Advanced: a JSON object recursively merged into the deployment.deploy request (and overriding the fields above). Use for any argument not yet exposed as a dedicated input. | no | "" |
| token | Deploys auth token (Bearer). Falls back to the DEPLOYS_TOKEN env var. | no | "" |
| authUser | Service-account email for Basic auth. Falls back to DEPLOYS_AUTH_USER. | no | "" |
| authPass | Service-account key for Basic auth. Falls back to DEPLOYS_AUTH_PASS. | no | "" |
| apiEndpoint | Deploys.app API endpoint. | no | https://api.deploys.app |
Outputs
| name | description |
|---|---|
| url | The deployed URL (best-effort; empty if it could not be resolved). |
| deployment | The deployed deployment name. |