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 GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 15, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: deploys-app/deploys-action@16080dc6692cfe7205515a95e8921317b66f4ef9 # v1.1.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
projectProject IDyes
locationDeploy location ID (e.g. gke.cluster-rcf2)yes
nameDeployment nameyes
imageContainer image to deploy (e.g. ghcr.io/owner/repo@sha256:...). Required for container deployments; must be empty for type=Static.no""
siteStatic site release reference (site://bucket/project/name@<sha>). Required for type=Static; must be empty for container deployments.no""
siteManifestDigestDigest of the static-site manifest for the release (type=Static).no""
typeDeployment type: WebService, Worker, CronJob, TCPService, InternalTCPService, or Static. Optional when updating an existing deployment (left unset = unchanged).no""
portService port. Required for WebService, TCPService, InternalTCPService.no""
protocolWebService protocol: http, https, or h2c (WebService only).no""
internalRun a WebService as internal-only (true/false, WebService only).no""
minReplicasAutoscale minimum replicas (0-20).no""
maxReplicasAutoscale maximum replicas (0-20).no""
envEnvironment variables, one KEY=VALUE per line. Replaces the whole env set.no""
addEnvEnv vars to add to the previous revision, one KEY=VALUE per line.no""
removeEnvEnv var keys to remove, one per line or comma-separated.no""
envGroupsEnv groups to attach (replaces the set), one per line or comma-separated. Each must already exist in the project.no""
addEnvGroupsEnv groups to add, one per line or comma-separated.no""
removeEnvGroupsEnv groups to remove, one per line or comma-separated.no""
commandEntrypoint override, one token per line (replaces the image CMD).no""
argsArguments override, one token per line.no""
workloadIdentityWorkload identity name to bind to the deployment.no""
pullSecretPull secret name for a private image registry.no""
scheduleCron schedule, 5 fields (CronJob only), e.g. "0 2 * * *".no""
ttlAuto-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""
diskNamePersistent volume name to attach (enables the disk block).no""
diskMountPathAbsolute container path to mount the disk (required with diskName).no""
diskSubPathSub-path within the volume to mount (optional, must be relative).no""
mountDataConfig/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""
cpuRequestCPU request (e.g. 100m, 0.5).no""
memoryRequestMemory request (e.g. 128Mi, 512Mi).no""
cpuLimitCPU limit (e.g. 500m, 1).no""
memoryLimitMemory limit (e.g. 512Mi, 1Gi).no""
accessRequireGoogleLoginRequire Google login to reach the deployment (true/false). Leave empty to keep the current access policy unchanged; set false to make it public.no""
accessAllowedEmailsAllowed emails when access is required, one per line or comma-separated.no""
accessAllowedDomainsAllowed email domains when access is required, one per line or comma-separated. Empty + requireGoogleLogin=true allows any Google user.no""
cloudSqlProxyInstanceCloud SQL instance connection name (enables a Cloud SQL Proxy sidecar).no""
cloudSqlProxyPortPort the Cloud SQL Proxy listens on (default 3300).no""
cloudSqlProxyCredentialsService-account JSON credentials for the Cloud SQL Proxy.no""
extraArgsAdvanced: 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""
tokenDeploys auth token (Bearer). Falls back to the DEPLOYS_TOKEN env var.no""
authUserService-account email for Basic auth. Falls back to DEPLOYS_AUTH_USER.no""
authPassService-account key for Basic auth. Falls back to DEPLOYS_AUTH_PASS.no""
apiEndpointDeploys.app API endpoint.nohttps://api.deploys.app
namedescription
urlThe deployed URL (best-effort; empty if it could not be resolved).
deploymentThe deployed deployment name.