name: Build and Deploy to Cloudflare Pages on: push: branches: - main jobs: build: runs-on: ubuntu-latest container: # Same digest the Dockerfile pins: one pinned base image and one # dependency list (script/bootstrap) for both the check build and # the deploy build. # alpine 3.21, 2026-02-28 image: alpine@sha256:c3f8e73fdb79deaebaa2037150150191b9dcbfba68b4a46d70103204c53f4709 steps: # actions/checkout v4.2.2, 2026-08-09 - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 with: submodules: recursive - name: Install build dependencies run: script/bootstrap - name: Build site run: script/test - name: Archive site run: tar -czf site.tar.gz public # actions/upload-artifact v4.6.2, 2026-08-09 - name: Upload artifact uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 with: name: site path: site.tar.gz deploy: runs-on: ubuntu-latest needs: build container: # node 20.20.2-bookworm, 2026-08-09 image: node@sha256:8f693eaa7e0a8e71560c9a82b55fd54c2ae920a2ba5d2cde28bac7d1c01c9ba5 steps: # actions/download-artifact v4.3.0, 2026-08-09 - name: Download artifact uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 with: name: site - name: Extract site run: tar -xzf site.tar.gz # wrangler 4.120.0, 2026-08-09 - name: Install Wrangler run: npm install -g wrangler@4.120.0 - name: Deploy to Cloudflare Pages run: wrangler pages deploy public --project-name=lora-vegas --branch=${{ github.ref_name }} env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}