Skip to content

Commit 21172a8

Browse files
author
Auto-Co AI
committed
feat: add CI workflow and deployment setup script
1 parent f9f740f commit 21172a8

2 files changed

Lines changed: 83 additions & 8 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,13 @@ on:
55
branches: [main]
66

77
jobs:
8-
deploy:
8+
build:
99
runs-on: ubuntu-latest
1010
steps:
1111
- uses: actions/checkout@v4
1212
- uses: actions/setup-node@v4
1313
with:
1414
node-version: 20
15-
cache: "npm"
15+
cache: npm
1616
- run: npm ci
1717
- run: npm run build
18-
- uses: amondnet/vercel-action@v25
19-
with:
20-
vercel-token: ${{ secrets.VERCEL_TOKEN }}
21-
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
22-
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
23-
vercel-args: "--prod"

scripts/deploy.sh

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
echo "=== DocuCraft Deployment Setup ==="
5+
echo ""
6+
7+
# Check prerequisites
8+
echo "=== Checking prerequisites ==="
9+
command -v gh >/dev/null 2>&1 || { echo "Missing: gh (GitHub CLI)"; exit 1; }
10+
command -v vercel >/dev/null 2>&1 || { echo "Missing: vercel (Vercel CLI)"; exit 1; }
11+
command -v supabase >/dev/null 2>&1 || { echo "Missing: supabase (Supabase CLI)"; exit 1; }
12+
command -v railway >/dev/null 2>&1 || { echo "Missing: railway (Railway CLI)"; exit 1; }
13+
echo "All prerequisites installed."
14+
echo ""
15+
16+
echo "=== Step 1: Create a Supabase project ==="
17+
echo "1. Go to https://supabase.com/dashboard/projects"
18+
echo "2. Click 'New Project'"
19+
echo "3. Name: docucraft"
20+
echo "4. Set a strong database password"
21+
echo "5. Choose region closest to you"
22+
echo "6. After creation, go to Project Settings > API"
23+
echo "7. Copy: Project URL, anon key, service_role key"
24+
echo ""
25+
26+
echo "=== Step 2: Create a GitHub App ==="
27+
echo "1. Go to https://github.com/settings/apps/new"
28+
echo "2. GitHub App name: DocuCraft"
29+
echo "3. Homepage URL: https://docucraft.dev"
30+
echo "4. Webhook URL: https://docucraft.dev/api/github/webhook"
31+
echo "5. Webhook secret: generate with: openssl rand -hex 32"
32+
echo "6. Permissions:"
33+
echo " - Pull requests: Read & Write"
34+
echo " - Contents: Read-only"
35+
echo " - Metadata: Read-only"
36+
echo " - Checks: Read & Write"
37+
echo "7. Subscribe to events: Pull request"
38+
echo "8. Where can this App be installed?: Any account"
39+
echo "9. After creation, generate a private key"
40+
echo "10. Copy: App ID, Client ID, Client Secret, Private Key, Webhook Secret"
41+
echo ""
42+
43+
echo "=== Step 3: Set up Vercel deployment ==="
44+
echo "vercel login"
45+
echo "vercel link --project docucraft"
46+
echo "vercel env add NEXT_PUBLIC_SUPABASE_URL"
47+
echo "vercel env add NEXT_PUBLIC_SUPABASE_ANON_KEY"
48+
echo "vercel env add SUPABASE_SERVICE_ROLE_KEY"
49+
echo "vercel env add GITHUB_APP_ID"
50+
echo "vercel env add GITHUB_APP_CLIENT_ID"
51+
echo "vercel env add GITHUB_APP_CLIENT_SECRET"
52+
echo "vercel env add GITHUB_APP_PRIVATE_KEY"
53+
echo "vercel env add GITHUB_APP_WEBHOOK_SECRET"
54+
echo "vercel env add OPENAI_API_KEY"
55+
echo "vercel env add NEXT_PUBLIC_APP_URL"
56+
echo "vercel --prod"
57+
echo ""
58+
59+
echo "=== Step 4: Deploy Supabase migrations ==="
60+
echo "supabase link --project-ref <your-project-ref>"
61+
echo "supabase db push"
62+
echo ""
63+
64+
echo "=== Step 5: Update Railway environment variables ==="
65+
echo "railway login"
66+
echo "railway link"
67+
echo "railway variables --set NEXT_PUBLIC_SUPABASE_URL=..."
68+
echo "railway variables --set SUPABASE_SERVICE_ROLE_KEY=..."
69+
echo "railway variables --set GITHUB_APP_PRIVATE_KEY=..."
70+
echo "# ... set all other vars ..."
71+
echo ""
72+
73+
echo "=== Step 6: Install the GitHub App ==="
74+
echo "1. Go to your GitHub App's public page"
75+
echo "2. Click 'Install' on your account/org"
76+
echo "3. Select repos to grant access"
77+
echo ""
78+
79+
echo "=== Done! ==="
80+
echo "Your DocuCraft instance should now be live."
81+
echo "Test it by opening a PR on a connected repo."

0 commit comments

Comments
 (0)