How can I use the Vercel CLI for custom workflows?

You can use the Vercel CLI to deploy any application, including custom git providers and restricted source code.
Last updated on July 29, 2024
API & CLIBuild, Deployment & Git

You can use the Vercel CLI with any CI/CD provider such as Azure DevOps to generate Preview Deployments for every git push and deploy to Production when code is merged into the main branch.

This approach is useful for developers seeking full control over their CI/CD pipeline, those unable to use Vercel's Git integration or those with a trunk-based development workflow.

You can build your application locally (or in a pipeline) without giving Vercel access to the source code through vercel build. Vercel automatically detects your frontend framework and generates a .vercel/output folder conforming to the Build Output API specification.

vercel build allows you to build your project within your own CI setup and upload only those build artifacts (and not the source code) to Vercel to create a deployment.

There are 3 options for deploying your application:

1. git push: Uploads all local branch commits to the corresponding remote branch

2. vercel deploy: Build a project locally or in your own CI environment

3. vercel deploy --prebuilt: Deploy a build output directly to Vercel, bypassing the Vercel build system

  1. Retrieve your Vercel Access Token
  2. Install the Vercel CLI and run vercel login
  3. Inside your folder, run vercel link to create a new Vercel project
  4. Inside the generated .vercel folder, save the projectId and orgId from the project.json
  5. Add VERCEL_TOKEN, VERCEL_ORG_ID, and VERCEL_PROJECT_ID as environment variables in your CI/CD provider
  6. Then set your custom workflow. For example, to build your application locally you could use:
npm install --global vercel
vercel pull --yes --environment=preview --token=YOUR_VERCEL_TOKEN
vercel build --token=YOUR_VERCEL_TOKEN
vercel deploy --prebuilt --token=YOUR_VERCEL_TOKEN
These Vercel CLI commands enable any custom workflow

You can also take full control over your application, deciding when to assign domains. This allows you to run tests or wait for other elements to be ready before assigning production domains to your new deployment.

The following examples show how to use the Vercel CLI as shown above:

Couldn't find the guide you need?