Skip to content

Deploy (Cloudflare Workers) #59

Deploy (Cloudflare Workers)

Deploy (Cloudflare Workers) #59

name: Deploy (Cloudflare Workers)
on:
workflow_run:
workflows: [CI]
types: [completed]
branches: [main, develop]
concurrency:
group: cloudflare-deploy-${{ github.event.workflow_run.head_branch }}
cancel-in-progress: true
jobs:
deploy:
name: Deploy to Cloudflare Workers
runs-on: ubuntu-latest
if: >-
github.event.workflow_run.conclusion == 'success' &&
github.event.workflow_run.head_repository.full_name == github.repository &&
(github.event.workflow_run.head_branch == 'main' ||
github.event.workflow_run.head_branch == 'develop')
permissions:
contents: read
deployments: write
steps:
- name: Checkout code
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
ref: ${{ github.event.workflow_run.head_sha }}
persist-credentials: false
- name: Setup pnpm
uses: pnpm/action-setup@f40ffcd9367d9f12939873eb1018b921a783ffaa # v4
with:
version: 9
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 24.11.1
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build project
run: pnpm build
env:
VITE_GIT_BRANCH: ${{ github.event.workflow_run.head_branch }}
VITE_DEV_SITE_URL: https://dev.bayanflow.com
VITE_SUPABASE_URL: ${{ secrets.VITE_SUPABASE_URL }}
VITE_SUPABASE_ANON_KEY: ${{ secrets.VITE_SUPABASE_ANON_KEY }}
VITE_GOOGLE_WEB_CLIENT_ID: ${{ secrets.VITE_GOOGLE_WEB_CLIENT_ID }}
VITE_TURNSTILE_SITE_KEY: ${{ secrets.VITE_TURNSTILE_SITE_KEY }}
VITE_POSTHOG_API_KEY: ${{ secrets.VITE_POSTHOG_API_KEY }}
VITE_POSTHOG_API_HOST: ${{ github.event.workflow_run.head_branch == 'main' && 'https://e.bayanflow.com' || 'https://e.dev.bayanflow.com' }}
- name: Deploy to Cloudflare Workers
uses: cloudflare/wrangler-action@9acf94ace14e7dc412b076f2c5c20b8ce93c79cd # v3
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: ${{ secrets.CF_ACCOUNT_ID }}
packageManager: pnpm
command: >-
deploy --env
${{ github.event.workflow_run.head_branch == 'main' && 'production' || 'staging' }}
- name: Output deployment URL
env:
HEAD_BRANCH: ${{ github.event.workflow_run.head_branch }}
run: |
if [[ "$HEAD_BRANCH" == "main" ]]; then
echo "Production worker: https://bayan-flow.workers.dev"
echo "Custom domain (after DNS cutover): https://bayanflow.com"
else
echo "Staging worker: https://bayan-flow-staging.workers.dev"
echo "Custom domain (after DNS cutover): https://dev.bayanflow.com"
fi