deployments-cicd
This skill provides expert guidance on Vercel deployments and CI/CD workflows, covering preview and production deployments, the `vercel` CLI commands…
Identity proven by GitHub's verified organisation badge (vercel, vercel-labs)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
- License
- Apache-2.0 (permissive)
- Pin
- 2a1e58dpinned Oct 9, 2026
- Context cost
- about 2,600 tokenswhen the skill loads
- GitHub stars
- 300on vercel/vercel-plugin
- Scripts
- None found
What it does
“Vercel deployment and CI/CD expert guidance. Use when deploying, promoting, rolling back, inspecting deployments, building with --prebuilt, or configuring CI workflow files for Vercel.”
Generated summary from the skill's own text
This skill provides expert guidance on Vercel deployments and CI/CD workflows, covering preview and production deployments, the `vercel` CLI commands including promote and rollback operations, and integration patterns for GitHub Actions, GitLab CI, and Bitbucket Pipelines. It helps agents deploy applications, manage deployment promotion strategies, inspect deployment details, and configure CI/CD pipelines that work with Vercel's Git integration and custom build workflows.
When to use it
- Deploying to Vercel or setting up CI/CD pipelines
- Promoting tested builds or rolling back production deployments
- Configuring GitHub Actions, GitLab CI, or Bitbucket Pipelines workflows
- Using custom builds with vercel deploy --prebuilt in CI systems
When not to
- Deploying to platforms other than Vercel
- When Git integration auto-deployments already meet your needs without custom CI
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add vercel/vercel-plugin --skill deployments-cicdInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install vercel/vercel-plugin deployments-cicd@2a1e58dfb63c064c2589c0c21b3e93c53728f8d5Installs the commit we checked (2a1e58d).
Copy by hand
Download the folder at 2a1e58d and put it in .claude/skills/deployments-cicd for Claude Code and in .agents/skills/deployments-cicd for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Claude Code plugin
/plugin install vercel@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "deployments-cicd" by Vercel. Source, pinned to commit 2a1e58dfb63c064c2589c0c21b3e93c53728f8d5: https://github.com/vercel/vercel-plugin/tree/2a1e58dfb63c064c2589c0c21b3e93c53728f8d5/skills/deployments-cicd 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/deployments-cicd/ for Claude Code and .agents/skills/deployments-cicd/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/vercel/deployments-cicd
SKILL.md at the pin
---
name: deployments-cicd
description: Vercel deployment and CI/CD expert guidance. Use when deploying, promoting, rolling back, inspecting deployments, building with --prebuilt, or configuring CI workflow files for Vercel.
metadata:
priority: 6
docs:
- "https://vercel.com/docs/deployments"
- "https://vercel.com/docs/git"
- "https://vercel.com/docs/deployments/promoting-a-deployment"
- "https://vercel.com/docs/deployment-checks"
sitemap: "https://vercel.com/sitemap.xml"
pathPatterns:
- '.github/workflows/*.yml'
- '.github/workflows/*.yaml'
- '.gitlab-ci.yml'
- 'bitbucket-pipelines.yml'
- 'vercel.json'
- 'apps/*/vercel.json'
bashPatterns:
- '\bvercel\s+deploy\b'
- '\bvercel\s+--prod\b'
- '\bvercel\s+promote\b'
- '\bvercel\s+rollback\b'
- '\bvercel\s+inspect\b'
- '\bvercel\s+build\b'
- '\bvercel\s+deploy\s+--prebuilt\b'
validate:
-
pattern: 'cron:\s*[''"]|from\s+[''"](node-cron)[''"]|cron\.schedule\('
message: 'Manual cron scheduling detected. Use Vercel Cron Jobs (vercel.json crons) for platform-native scheduled tasks.'
severity: recommended
skipIfFileContains: 'vercel\.json.*crons|@vercel/cron'
retrieval:
aliases:
- deploy
- ci cd
- continuous deployment
- release pipeline
intents:
- deploy to vercel
- set up ci cd
- promote deployment
- rollback deploy
entities:
- vercel deploy
- preview
- production
- rollback
- promote
- CI workflow
---
# Vercel Deployments & CI/CD
You are an expert in Vercel deployment workflows — `vercel deploy`, `vercel promote`, `vercel rollback`, `vercel inspect`, `vercel build`, and CI/CD pipeline integration with GitHub Actions, GitLab CI, and Bitbucket Pipelines.
## Deployment Commands
### Preview Deployment
```bash
# Deploy from project root (creates preview URL)
vercel
# Equivalent explicit form
vercel deploy
```
Preview deployments are created automatically for every push to a non-production branch when using Git integration. They provide a unique URL for testing.
### Production Deployment
```bash
# Deploy directly to production
vercel --prod
vercel deploy --prod
# Force a new deployment (skip cache)
vercel --prod --force
```
### Build Locally, Deploy Build Output
```bash
# Build locally (uses preview env vars by default)
vercel build
# Build with production env vars
vercel build --prod
# Deploy only the build output (no remote build)
vercel deploy --prebuilt
vercel deploy --prebuilt --prod
```
**When to use `--prebuilt`:** Custom CI pipelines where you control the build step, need build caching at the CI level, or need to run tests between build and deploy.
**Prebuilt limits:** [System Environment Variables are missing at build time](https://vercel.com/docs/cli/deploy#when-not-to-use---prebuilt), and Next.js Skew Protection needs a [custom deployment ID](https://vercel.com/docs/skew-protection#custom-deployment-id).
### Promote & Rollback
```bash
# Stage a production deployment without assigning domains
vercel deploy --prod --skip-domain
# Promote it (instant, no rebuild)
vercel promote <deployment-url-or-id>
# Rollback to the previous production deployment
vercel rollback
# Rollback to a specific deployment
vercel rollback <deployment-url-or-id>
```
**Promote a production deployment, not a preview.** Promoting a staged production deployment is instant and serves the same build. Promoting a preview rebuilds it with production environment variables, so the tested build is not the one released.
**Rollback turns off auto-assignment.** New production pushes stop going live until `vercel promote` restores it.
### Inspect Deployments
```bash
# View deployment details (build info, functions, metadata)
vercel inspect <deployment-url>
# List recent deployments
vercel ls
# View logs for a deployment
vercel logs <deployment-url>
vercel logs <deployment-url> --follow
```
## CI/CD Integration
### When to Add a CI Pipeline
The Git integration builds every push, posts preview URLs on pull requests, and deploys the production branch. Use CI for what Vercel does not run: tests, security scans, performance budgets, and approval gates. Gate releases on them with [Deployment Checks](references/deployment-checks.md) while Vercel keeps building. Deploy from CI only when the build must run in your runner, such as to keep source code off Vercel or for GitHub Enterprise Server.
### Required Environment Variables
Every CI pipeline needs these three variables:
```bash
VERCEL_TOKEN=<your-token> # Personal or team token
VERCEL_ORG_ID=<org-id> # From .vercel/project.json
VERCEL_PROJECT_ID=<project-id> # From .vercel/project.json
```
Set these as secrets in your CI provider. Never commit them to source control. The CLI reads `VERCEL_TOKEN` from the environment; do not pass `--token`, which exposes it in process lists and logs.
### GitHub Actions
```yaml
name: Deploy to Vercel
on:
push:
branches: [main]
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Vercel CLI
run: npm install -g vercel
- name: Pull Vercel Environment
run: vercel pull --yes --environment=production
- name: Build
run: vercel build --prod
- name: Deploy
run: vercel deploy --prebuilt --prod
```
### Other CI Pipelines and Backend Access
| Task | Read |
| --- | --- |
| Post preview URLs on pull requests from GitHub Actions, or deploy from GitLab CI or Bitbucket Pipelines | [references/cli-pipelines.md](references/cli-pipelines.md) |
| Let deployed functions reach AWS, GCP, or Vault without static secrets (OIDC federation) | [references/oidc-federation.md](references/oidc-federation.md) |
| Deployment Checks, or testing protected deployments from CI | [references/deployment-checks.md](references/deployment-checks.md) |
| Live status (MCP) | [references/live-status.md](references/live-status.md) |
## Common CI Patterns
### Release Only Tested Builds
With Git deployments, require [Deployment Checks](references/deployment-checks.md). When CI deploys with the CLI, stage a production deployment, test it, then promote that build:
```yaml
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
jobs:
stage:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
outputs:
url: ${{ steps.deploy.outputs.url }}
steps:
# ... checkout, install, vercel pull --environment=production, vercel build --prod ...
- id: deploy
run: echo "url=$(vercel deploy --prebuilt --prod --skip-domain)" >> $GITHUB_OUTPUT
e2e-tests:
needs: stage
runs-on: ubuntu-latest
steps:
# ... checkout, install, bypass header in playwright.config.ts (see references/deployment-checks.md) ...
- run: npx playwright test
env:
BASE_URL: ${{ needs.stage.outputs.url }}
VERCEL_AUTOMATION_BYPASS_SECRET: ${{ secrets.VERCEL_AUTOMATION_BYPASS_SECRET }}
promote:
needs: [stage, e2e-tests]
runs-on: ubuntu-latest
steps:
- run: npm install -g vercel
- run: vercel promote ${{ needs.stage.outputs.url }}
```
## Global CLI Flags for CI
| Flag | Purpose |
|------|---------|
| `--token <token>` | Authenticate; in CI, set `VERCEL_TOKEN` instead |
| `--yes` / `-y` | Skip confirmation prompts |
| `--scope <team>` | Execute as a specific team |
| `--cwd <dir>` | Set working directory |
## Best Practices
1. **Always use `--prebuilt` in CI** — separates build from deploy, enables build caching and test gates
2. **Use `vercel pull` before build** — ensures correct env vars and project settings
3. **Release only tested builds** — Deployment Checks (Git) or staged production builds (CLI)
4. **Use OIDC federation for runtime backend access** — lets Vercel functions auth to AWS/GCP without static secrets (does not replace `VERCEL_TOKEN` for CLI)
5. **Pin the Vercel CLI version in CI** — `npm install -g vercel@latest` can break unexpectedly
6. **Add `--yes` flag in CI** — prevents interactive prompts from hanging pipelines
## Deployment Strategy Matrix
| Scenario | Strategy | Commands |
|----------|----------|----------|
| Standard team workflow | Git-push deploy | Push to main/feature branches |
| Custom CI/CD (Actions, CircleCI) | Prebuilt deploy | `vercel build && vercel deploy --prebuilt` |
| Monorepo with Turborepo | Affected + remote cache | `turbo run build --affected` |
| Preview for every PR | Default behavior | Auto-creates preview URL per branch |
| Release a tested build | Deployment Checks (Git) or staged production (CLI) | Required checks, or `vercel deploy --prod --skip-domain` → test → `vercel promote <url>` |
| Atomic deploys with DB migrations | Two-phase | Run migration → verify → `vercel promote` |
| Latency-sensitive regional data | Vercel Functions | Keep the Node.js default; set the function region near the data |
## Common Build Errors
| Error | Cause | Fix |
|-------|-------|-----|
| `ERR_PNPM_OUTDATED_LOCKFILE` | Lockfile doesn't match package.json | Run `pnpm install`, commit lockfile |
| `NEXT_NOT_FOUND` | Root directory misconfigured | Set Root Directory in Project Settings |
| `Invalid next.config.js` | Config syntax error | Validate config locally with `next build` |
| `functions/api/*.js` mismatch | Wrong file structure | Move to `app/api/` directory (App Router) |
| `Error: EPERM` | File permission issue in build | Don't `chmod` in build scripts; use postinstall |
## Deploy Summary Format
Present a structured deploy result block:
```
## Deploy Result
- **URL**: <deployment-url>
- **Target**: production | preview
- **Status**: READY | ERROR | BUILDING | QUEUED
- **Commit**: <short-sha>
- **Framework**: <detected-framework>
- **Build Duration**: <duration>
```
If the deployment failed, append:
```
- **Error**: <summary of failure from logs>
```
For production deploys, also include:
```
### Post-Deploy Observability
- **Error scan**: <N errors found / clean> (scanned via vercel logs --level error --since 1h)
- **Drains**: <N configured / none>
- **Monitoring**: <active / gaps identified>
```
## Deploy Next Steps
Based on the deployment outcome:
- **Success (preview)** → "Visit the preview URL to verify. When ready, run `/deploy prod` to promote to production."
- **Success (production)** → "Your production site is live. Run `/status` to see the full project overview."
- **Build error** → "Check the build logs above. Common fixes: verify `build` script in package.json, check for missing env vars with `/env list`, ensure dependencies are installed."
- **Missing env vars** → "Run `/env pull` to sync environment variables locally, or `/env list` to review what's configured on Vercel."
- **Monorepo issues** → "Set the Root Directory in Project Settings to the app's folder; `vercel.json` has no `rootDirectory` key."
- **Post-deploy errors detected** → "Review errors above. Check `vercel logs <url> --level error` for details. If drains are configured, correlate with external monitoring."
- **No monitoring configured** → "Set up drains or install an error tracking integration before the next production deploy. Run `/status` for a full observability diagnostic."
## Official Documentation
- [Deployments](https://vercel.com/docs/deployments)
- [Vercel CLI](https://vercel.com/docs/cli)
- [GitHub Actions](https://vercel.com/docs/git/vercel-for-github)
- [GitLab CI](https://vercel.com/docs/git/vercel-for-gitlab)
- [Bitbucket Pipelines](https://vercel.com/docs/git/vercel-for-bitbucket)
- [OIDC Federation](https://vercel.com/docs/oidc)
From vercel/vercel-plugin at 2a1e58d, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.
View SKILL.md on GitHub at 2a1e58dFiles
- SKILL.md12 KB · 35a39f8944a8
- .vercel.approvers19 B · 32c12a2a9e81
- references/
- cli-pipelines.md1.8 KB · c790b0cfcddf
- deployment-checks.md3.9 KB · 54c71d81ee38
- live-status.md1.3 KB · d747c533fce2
- oidc-federation.md938 B · 8be13e948df3
6 files, 20 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 2a1e58dMore from Vercel
next-bundle-optimizer
Audits Next.js applications to identify and reduce browser bundle size and initial-load work by analyzing routes, dependencies and client outputs.
Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago
next-cache-components-optimizer
Optimize Next.js routes to display meaningful UI instantly on initial load or client navigation by encoding the optimization goal as a failing…
Claude Code, Codex, Cursor +4 · about 5.6K tokens · pinned 6 days ago
next-partial-prefetching-adoption
Enables Partial Prefetching in Next.js 16.3+ apps and guides adoption through auditing Link prefetch behavior, preserving UI in tests or manually, and…
Claude Code, Codex, Cursor +4 · about 6.7K tokens · pinned 6 days ago
next-partial-prefetching-optimizer
This skill optimizes Next.js client-side navigation under Partial Prefetching by defining what UI loads before and after a click.
Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago
apple
This skill emulates Apple's OAuth and OIDC services for local development and testing.
Claude Code, Codex, Cursor +4 · about 1.9K tokens · pinned 6 days ago
aws
This skill emulates AWS cloud services locally, providing S3 bucket and object operations, SQS message queues, IAM user and role management, and STS assume…
Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago
Related in Cloud and DevOps
push-to-registry
This skill configures Packer to push build metadata to HCP Packer registry, enabling version control and governance of machine images across infrastructure…
by HashiCorpOfficial publisher
Claude Code, Codex, Cursor +4 · about 1.1K tokens · pinned 6 days ago
vercel
This skill deploys and manages Vercel applications, handling deployments, aliases, logs, and monitoring.
by SentryOfficial publisher
Claude Code, Codex, Cursor +4 · about 610 tokens · pinned 6 days ago
databricks-model-serving
Manages Databricks Model Serving endpoint lifecycle including creation, configuration, traffic routing, and monitoring.
by DatabricksOfficial publisher
Claude Code, Codex, Cursor +3 · about 3.2K tokens · pinned 6 days ago
access-protected-vercel-deployment
The skill enables agents to access Vercel deployments protected by authentication, SSO, or Deployment Protection.
by VercelOfficial publisher
Claude Code, Codex, Cursor +3 · about 1.2K tokens · pinned 6 days ago
bootstrap
This skill orchestrates the setup process for Vercel-linked repositories by executing project linking, environment provisioning, database configuration, and…
by VercelOfficial publisher
Claude Code, Codex, Cursor +3 · about 1.5K tokens · pinned 6 days ago
cdn-caching
This skill helps debug Vercel's CDN caching layers (CDN Cache, ISR, and PPR) by analyzing cache hit rates, revalidation behavior, cost patterns, and…
by VercelOfficial publisher
Claude Code, Codex, Cursor +3 · about 4.8K tokens · pinned 6 days ago
Open roles at Vercel
5 of 11 open roles on the jobs board
- Software Engineer - Data Platform
Remote (United States) (Remote)
- Software Engineer, CDN
San Francisco, California, United States; New York City, New York, United States (Hybrid)
- Software Engineer, Trust & Safety
San Francisco, California, United States; New York City, New York, United States (Hybrid)
- Solutions Architect
San Francisco, New York City, Austin, United States (Hybrid)
- Software Engineer, Compute
London, UK (Hybrid)