CI/CD is a DevOps practice that automates building, testing, and deploying code so teams can deliver changes faster, safer, and with confidence
Developers frequently push code to a shared Git repository (such as GitHub or GitLab). Each push triggers automated checks such as:
Once the code passes CI, it is automatically prepared for release. The application is always in a deployable state, and releases can happen safely at any time.
The final step: every change that passes automated checks is deployed automatically to production — no manual steps required.
Git and Vercel form a lightweight yet production-ready CI/CD setup.
Git provides:
Vercel provides:
Together, they enable a seamless developer experience.
Here’s a typical workflow using Git and Vercel:
mainmain branch for productiondevelop branch for stagingUse pull requests to merge changes safely.
Create a file: .github/workflows/ci.yml
name: CI Pipelineon:push:branches: [main, develop]pull_request:branches: [main, develop]jobs:build-and-test:runs-on: ubuntu-lateststeps:- name: Checkout codeuses: actions/checkout@v4- name: Setup Node.jsuses: actions/setup-node@v4with:node-version: 18- name: Install dependenciesrun: npm install- name: Run testsrun: npm test- name: Build projectrun: npm run build
This workflow:
If any step fails, the pipeline stops.
Vercel will now:
main to productionYou can let GitHub Actions handle CI and let Vercel handle CD.
Or you can add deployment steps into GitHub Actions using the Vercel CLI.
Example:
- name: Deploy to Vercelrun: npx vercel --prod --token=${{ secrets.VERCEL_TOKEN }}