💸Save up to $132K/month in CI costs!👉 Try Free
Skip to main content
← Back to workflows

How to Deploy Websites with Vercel and GitHub Actions

amondnet-vercel-action -
GitHub Action
v25.2.0
634
Contributors
Contributor - amondnetContributor - iam4x

Optimize Your CI/CD Pipeline

Get instant insights into your CI/CD performance and costs. Reduce build times by up to 45% and save on infrastructure costs.

45% Faster Builds
60% Cost Reduction
Usage
name: Deploy Website
on:
pull_request:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: amondnet/vercel-action@v25
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }} # Required
github-token: ${{ secrets.GITHUB_TOKEN }} # Optional
vercel-args: '--prod' # Optional
vercel-org-id: ${{ secrets.ORG_ID }} # Required
vercel-project-id: ${{ secrets.PROJECT_ID }} # Required
working-directory: ./sub-directory # Optional

vercel-action logo

vercel-action

This action makes a deployment with GitHub Actions instead of Vercel builder.


What is Vercel Action?

The Vercel Action allows users to automate deployment through GitHub Actions for websites and web apps on Vercel. You can likewise manage custom domains, add comments for pull requests, and even enable basic authenticate deployments.

How to Use vercel-token

To authenticate your deployment with Vercel, you need to provide a Vercel token.

with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}

You can generate a Vercel token from your Vercel account.

How to Comment on Pull Requests

The action allows you to comment on pull requests automatically. Set github-comment to true or a custom string.

with:
github-comment: true # Use default comment

Alternatively, you can provide a custom message:

with:
github-comment: "Deployment preview available here"

How to Use vercel-org-id and vercel-project-id

To deploy to a specific Vercel project, you need to specify the vercel-org-id and vercel-project-id. These can be found or linked using the Vercel CLI.

with:
vercel-org-id: ${{ secrets.ORG_ID }}
vercel-project-id: ${{ secrets.PROJECT_ID }}

How to Customize the Build Process with vercel-args

You can control the deployment environment by passing arguments to the Vercel CLI, such as deploying to production.

with:
vercel-args: '--prod'

How to Set the Working Directory

If your project is not in the root directory, specify the working directory using the working-directory input.

with:
working-directory: ./your-sub-directory

How to Alias Domains

You can assign a domain to your deployment by using the alias-domains input. This is useful if you want to assign PR-specific or branch-specific URLs.

with:
alias-domains: |
staging.yourdomain.com
pr-{{PR_NUMBER}}.yourdomain.com

Additional Configuration

For further customization, you can explore the Vercel Action documentation and configure additional parameters such as environment variables and advanced deployment strategies.