vercel deploy Command Reference
Deploy a project to a Vercel preview or production URL.
vercel deploy uploads and builds your project, returning a deployment URL. In CI you authenticate with a token and typically deploy prebuilt output for speed and reproducibility.
What it does
vercel deploy (the default subcommand of vercel) creates a deployment from the current project and prints its URL. Without --prod it is a preview; with --prebuilt it uploads the local .vercel/output produced by vercel build.
Common flags and usage
- --prod: promote the deployment to the production domain
- --prebuilt: deploy local build output from vercel build
- --token TOKEN: authenticate non-interactively
- --yes: skip interactive setup prompts
- --archive=tgz: upload the build as an archive (large projects)
Example
- name: Build and deploy to Vercel
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
run: |
vercel pull --yes --environment=production --token "${VERCEL_TOKEN}"
vercel build --prod --token "${VERCEL_TOKEN}"
vercel deploy --prebuilt --prod --token "${VERCEL_TOKEN}"In CI
Pass --token from secrets and --yes so the deploy never prompts. The reliable pattern is vercel pull then vercel build then vercel deploy --prebuilt, which separates the build from the upload and guarantees the deployed output matches what you built in the runner.
Key takeaways
- vercel deploy creates a deployment and returns its URL; --prod promotes it.
- Pass --token and --yes so the deploy runs non-interactively.
- Use pull then build then deploy --prebuilt for reproducible deploys.