askill
deploy

deploySafety 82Repository

Deploy workflow for Vercel, Supabase, and CI/CD pipelines. Use for deployment and CI/CD setup.

2 stars
1.2k downloads
Updated 3/21/2026

Package Files

Loading files...
SKILL.md

Deploy & CI/CD

Pre-deploy Checklist

  1. npm run typecheck - passes
  2. npm run build - passes
  3. npm run test - passes (if available)
  4. No console.log in production code
  5. Environment variables set in hosting platform

Vercel

Preview:

npx vercel --yes

Production:

npx vercel --prod --yes

Supabase Edge Functions

Token handling: System env var may belong to a different Supabase account. Source the project's .env first:

export $(grep SUPABASE_ACCESS_TOKEN .env) && supabase functions deploy [name] --project-ref [ref]

If you get 401 Unauthorized, the token is wrong — do not retry. Check which token the project needs vs what's in the env.

Post-deploy

  1. Verify production URL loads
  2. Test critical user flows
  3. Monitor error logs for 5 minutes

CI/CD Workflows

Standard CI Template

# .github/workflows/ci.yml
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - run: npm ci
      - run: npm run typecheck
      - run: npm run lint
      - run: npm run test
      - run: npm run build

Vercel Deploy Workflow

# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: amondnet/vercel-action@v25
        with:
          vercel-token: ${{ secrets.VERCEL_TOKEN }}
          vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
          vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
          vercel-args: '--prod'

Supabase Edge Functions Deploy

# .github/workflows/supabase.yml
name: Deploy Edge Functions

on:
  push:
    branches: [main]
    paths:
      - 'supabase/functions/**'

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: supabase/setup-cli@v1
      - run: supabase functions deploy --project-ref ${{ secrets.SUPABASE_PROJECT_REF }}
        env:
          SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}

Best Practices

DO:

  • Cache npm dependencies
  • Run typecheck before tests
  • Use matrix for multiple Node versions
  • Add path filters for selective runs
  • Store secrets in GitHub Secrets

DON'T:

  • Commit secrets to workflow files
  • Skip typecheck/lint in CI
  • Use npm install (use npm ci)
  • Run all jobs on every file change

Common Fixes

ErrorSolution
npm ci failsCheck package-lock.json committed
Type errorsRun npm run typecheck locally
Secret missingAdd to Settings > Secrets
Cache missCheck cache key matches

Environment Matrix

strategy:
  matrix:
    node-version: [18, 20, 22]
    os: [ubuntu-latest, windows-latest]

Quick Commands

SayAction
add ciCreate GitHub Actions workflow
fix ciDebug failing workflow
add deploy actionAdd deployment workflow

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

82/100Analyzed 3/22/2026

High-quality CI/CD and deployment skill with comprehensive coverage of Vercel, Supabase, and GitHub Actions workflows. Well-structured with clear triggers, actionable commands, code templates, best practices, and common fixes table. Slight deduction for internal project specificity in environment variable handling, but overall excellent reusability for standard deployment patterns.

82
88
72
88
85

Metadata

Licenseunknown
Version-
Updated3/21/2026
Publisherdjnsty23

Tags

ci-cdgithubgithub-actionslintingsecuritytesting