name: Deploy Media Worker to Cloudflare on: workflow_run: workflows: [CI] types: [completed] workflow_dispatch: {} jobs: deploy: # Production deploy: only on pushes to main (via CI success) or manual main runs. if: ${{ (github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main') || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'main') }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 22 - name: Install dependencies run: cd infrastructure/cloudflare && npm ci - name: Test worker run: cd infrastructure/cloudflare && npm test - name: Deploy to Cloudflare Workers (production) env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} run: | cd infrastructure/cloudflare npx wrangler deploy --env production