Skip to content

Commit 68091d6

Browse files
hallelx2claude
andcommitted
ci: add Cloudflare Pages deploy workflow
- Auto-deploys apps/web to Cloudflare Pages on push to main - Triggered when apps/web/** or packages/shared/** changes - Builds shared package first, then Next.js app - Deploys via wrangler pages deploy - Manual trigger via workflow_dispatch - Cloudflare Pages project "vectorless" at vectorless.pages.dev - 5 production secrets configured (DB, auth, API URL) - CF_ACCOUNT_ID secret set, CF_API_TOKEN needs manual setup Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent bb35a3f commit 68091d6

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

.github/workflows/deploy-web.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Deploy Web to Cloudflare Pages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- "apps/web/**"
8+
- "packages/shared/**"
9+
10+
# Allow manual trigger
11+
workflow_dispatch:
12+
13+
jobs:
14+
deploy:
15+
name: Build & Deploy
16+
runs-on: ubuntu-latest
17+
permissions:
18+
contents: read
19+
deployments: write
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- uses: pnpm/action-setup@v4
24+
with:
25+
version: 10
26+
27+
- uses: actions/setup-node@v4
28+
with:
29+
node-version: 22
30+
cache: pnpm
31+
32+
- name: Install dependencies
33+
run: pnpm install --frozen-lockfile
34+
35+
- name: Build shared package
36+
run: pnpm --filter=@vectorless/shared build
37+
38+
- name: Build Next.js app
39+
run: pnpm --filter=@vectorless/web build
40+
env:
41+
DATABASE_URL: ${{ secrets.DASHBOARD_DATABASE_URL }}
42+
BETTER_AUTH_SECRET: ${{ secrets.BETTER_AUTH_SECRET }}
43+
BETTER_AUTH_URL: https://vectorless.pages.dev
44+
NEXT_PUBLIC_APP_URL: https://vectorless.pages.dev
45+
VECTORLESS_API_URL: https://api.vectorless.store
46+
NODE_ENV: production
47+
48+
- name: Deploy to Cloudflare Pages
49+
run: npx wrangler pages deploy apps/web/.next --project-name=vectorless
50+
env:
51+
CLOUDFLARE_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
52+
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }}

0 commit comments

Comments
 (0)