Skip to content

Improve error handling in auth, message, and user actions #19

Improve error handling in auth, message, and user actions

Improve error handling in auth, message, and user actions #19

Workflow file for this run

name: Vercel Production Deployment
env:
VERCEL_ORG_ID: ${{ secrets.ORGID }}
VERCEL_PROJECT_ID: ${{ secrets.PROJECTID }}
NPM_CONFIG_LEGACY_PEER_DEPS: "true"
on:
push:
branches:
- main
jobs:
Deploy-Production:
environment: production
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- name: Install Vercel CLI
run: npm install --global vercel@latest
- name: Pull Vercel Environment Information
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
- name: Create dotenv files from GitHub Environment secrets
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
DIRECT_URL: ${{ secrets.DIRECT_URL }}
AUTH_SECRET: ${{ secrets.AUTH_SECRET }}
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME: ${{ secrets.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME }}
NEXT_PUBLIC_CLOUDINARY_API_KEY: ${{ secrets.NEXT_PUBLIC_CLOUDINARY_API_KEY }}
CLOUDINARY_API_SECRET: ${{ secrets.CLOUDINARY_API_SECRET }}
NEXT_PUBLIC_PUSHER_APP_KEY: ${{ secrets.NEXT_PUBLIC_PUSHER_APP_KEY }}
PUSHER_APP_ID: ${{ secrets.PUSHER_APP_ID }}
PUSHER_APP_SECRET: ${{ secrets.PUSHER_APP_SECRET }}
run: |
mkdir -p .vercel
{
printf 'DATABASE_URL="%s"\n' "$DATABASE_URL"
printf 'DIRECT_URL="%s"\n' "$DIRECT_URL"
printf 'AUTH_SECRET="%s"\n' "$AUTH_SECRET"
printf '\n'
printf 'NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="%s"\n' "$NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME"
printf 'NEXT_PUBLIC_CLOUDINARY_API_KEY="%s"\n' "$NEXT_PUBLIC_CLOUDINARY_API_KEY"
printf 'CLOUDINARY_API_SECRET="%s"\n' "$CLOUDINARY_API_SECRET"
printf '\n'
printf 'NEXT_PUBLIC_PUSHER_APP_KEY="%s"\n' "$NEXT_PUBLIC_PUSHER_APP_KEY"
printf 'PUSHER_APP_ID="%s"\n' "$PUSHER_APP_ID"
printf 'PUSHER_APP_SECRET="%s"\n' "$PUSHER_APP_SECRET"
} > .env
cp .env .env.production
cp .env .vercel/.env.production.local
- name: Verify required env vars present
run: |
if [ ! -s .env ]; then
echo ".env is empty. Ensure you added env secrets in GitHub > Settings > Environments > production."
exit 1
fi
missing=0
for key in NEXT_PUBLIC_PUSHER_APP_KEY DATABASE_URL DIRECT_URL AUTH_SECRET; do
if ! grep -qE "^[[:space:]]*${key}[[:space:]]*=" .env; then
echo "Missing ${key} in generated .env"
missing=1
fi
done
exit $missing
- name: Install dependencies (legacy peer deps)
run: npm ci --legacy-peer-deps
- name: Build Project Artifacts
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
- name: Deploy Project Artifacts to Vercel
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}