name: โ˜๏ธ Cloudflare Deployment on: push: branches: [main, develop] paths: ['src/**', 'workers/**', 'wrangler.toml'] pull_request: branches: [main] workflow_dispatch: jobs: deploy-workers: name: Deploy Workers runs-on: ubuntu-latest steps: - name: ๐Ÿ“ฅ Checkout uses: actions/checkout@v4 - name: ๐Ÿ”ง Setup Node uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: ๐Ÿ“ฆ Install run: npm ci - name: ๐Ÿ—๏ธ Build run: npm run build --if-present - name: ๐Ÿš€ Deploy Workers uses: cloudflare/wrangler-action@v3 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} command: deploy --env production - name: ๐Ÿงน Purge cache if: github.ref == 'refs/heads/main' run: | curl -X POST "https://api.cloudflare.com/client/v4/zones/${{ secrets.CLOUDFLARE_ZONE_ID }}/purge_cache" \ -H "Authorization: Bearer ${{ secrets.CLOUDFLARE_API_TOKEN }}" \ -H "Content-Type: application/json" \ --data '{"purge_everything":true}' - name: ๐Ÿ“Š Summary run: | echo "### โ˜๏ธ Cloudflare Deployment Success" >> $GITHUB_STEP_SUMMARY echo "- **Worker**: blackroad-private" >> $GITHUB_STEP_SUMMARY