ci: add Cloudflare Pages static and runtime workflows #1
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ☁️ Deploy to Cloudflare Pages | |
| on: | |
| push: | |
| branches: ['**'] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: cloudflare-pages-${{ github.ref_name }} | |
| cancel-in-progress: true | |
| jobs: | |
| deploy: | |
| name: 🏗 Build and Deploy | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 🔍 Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: ⚙️ Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 10 | |
| - name: ⚙️ Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24' | |
| cache: 'pnpm' | |
| - name: 🚫 Remove server-only paths for export build | |
| run: | | |
| echo "Pruning dynamic/server paths not supported by static export..." | |
| rm -rf src/app/api src/server src/proxy.ts src/app/jobs/[id] src/app/[...not-found] prisma.config.ts | |
| - name: 📥 Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: 🏗 Build static export | |
| env: | |
| NEXT_OUTPUT_MODE: export | |
| GITHUB_PAGES: 1 | |
| NEXT_BASE_PATH: '' | |
| run: | | |
| pnpm build | |
| - name: 🚀 Deploy to Cloudflare Pages | |
| uses: cloudflare/wrangler-action@v3 | |
| with: | |
| apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
| accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
| command: >- | |
| pages deploy out | |
| --project-name=${{ secrets.CLOUDFLARE_PAGES_PROJECT_NAME }} | |
| --branch=${{ github.ref_name }} |