vercel/Wait for Vercel Deployment
Wait for a Vercel deployment to be ready in CI by polling GitHub's Deployments API.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| project-slug | Optional. Set this when the same repository serves multiple Vercel projects (e.g. monorepos). Vercel suffixes the GitHub Deployment environment and commit-status context with the project slug in that case ("Preview – my-project" / "Vercel – my-project"); pass the slug here to disambiguate. Omit for the common single-project case where Vercel uses the bare "Preview" / "Production" environment names and the bare "Vercel" commit-status context. | no | "" |
| environment | Which Vercel deployment environment to wait for: "production" or "preview". Defaults to "preview". Ignored when `environment-name` is set. | no | preview |
| environment-name | Optional advanced escape hatch. Match the GitHub Deployment environment name exactly (e.g. "Preview", "Production", "Preview – my-project"). When set, this takes precedence over the auto-composed name derived from `environment` + `project-slug`. You normally don't need this — set `project-slug` instead. | no | "" |
| status-context | Optional advanced escape hatch. Match the commit-status context that the deployment ID is read from (e.g. "Vercel" or "Vercel – my-project"). When set, this takes precedence over the auto-composed value. To skip deployment-id resolution entirely, set `require-deployment-id: false` and ignore the `deployment-id` output. | no | "" |
| require-deployment-id | Whether to fail when the Vercel deployment ID cannot be resolved from the commit status. Defaults to "true". Set to "false" if you only need `deployment-url` and don't care about `deployment-id`. | no | true |
| timeout | Maximum time to wait, in seconds. Defaults to 600 (10 minutes). | no | 600 |
| check-interval | How often to poll, in seconds. Defaults to 10. | no | 10 |
| sha | Optional. The commit SHA to look up the deployment for. Defaults to the PR head SHA (for `pull_request` events), the pushed SHA (for `push` events), or `$GITHUB_SHA` otherwise. | no | "" |
| github-token | GitHub token used to query the Deployments / Statuses APIs. Defaults to the job's automatic GITHUB_TOKEN. The workflow's `permissions:` block must include `deployments: read` (always) and `statuses: read` (when resolving deployment ID). | no | ${{ github.token }} |
Outputs
| name | description |
|---|---|
| deployment-url | URL of the ready Vercel deployment (the GitHub Deployment status `environment_url`, falling back to `target_url`). |
| deployment-id | Vercel deployment ID resolved from the commit status (e.g. `dpl_8z4XjwrRQGYwcDKFMLN5BeTvGhXu`). Empty if resolution failed and `require-deployment-id` is "false". |
| deployment-state | The terminal GitHub Deployment status state ("success" or "inactive"). |