name: Web Deploy (Cloudflare Workers) on: workflow_dispatch: inputs: environment: description: "Wrangler environment (leave blank for default)" required: false default: "" push: branches: [master, dev] paths: - "web/**" - "docs/**" - ".github/workflows/web-deploy.yml" concurrency: group: web-deploy-${{ github.ref }} cancel-in-progress: false jobs: deploy: runs-on: ubuntu-latest environment: name: web-production url: https://ohmyopenagent.com defaults: run: working-directory: web permissions: contents: read deployments: write steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 with: bun-version: "1.3.12" - name: Install dependencies run: bun install --frozen-lockfile - name: Build with OpenNext for Cloudflare run: | bun run prebuild bunx opennextjs-cloudflare build env: NEXT_TELEMETRY_DISABLED: "1" - name: Deploy to Cloudflare Workers uses: cloudflare/wrangler-action@v3 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} workingDirectory: web command: ${{ inputs.environment && format('deploy --env {0}', inputs.environment) || 'deploy' }}