From 5d6863f0d2c3a3e863106e41ebaaf68a5c841812 Mon Sep 17 00:00:00 2001 From: Elmehdi Aitbrahim Date: Thu, 20 Aug 2026 19:15:06 -0400 Subject: [PATCH] =?UTF-8?q?chore(deploy):=20deploys=20fire=20on=20merge=20?= =?UTF-8?q?to=20main=20only=20=E2=80=94=20drop=20pull=5Frequest=20preview?= =?UTF-8?q?=20deploys?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Deploy workflow no longer runs on pull_request. Production deploys now happen exclusively on push to main (i.e. when a PR is merged), the hourly content refresh, and manual dispatch. PRs stay fully validated by ci.yml — fetch, type check, build — which also uploads a site-preview artifact for inspection, so nothing is lost except the per-PR preview URL (which was publicly reachable and burned a wrangler deploy per push). FR-1 amended accordingly (dated, original wording preserved). --- .github/workflows/deploy.yml | 8 ++++---- docs/superpowers/specs/2026-08-19-website-prd.md | 7 +++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 06e6d64..532b8ad 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,10 +1,11 @@ name: Deploy -# FR-1/FR-12 — one workflow owns every deploy: -# - push to main → production deploy (*.pages.dev until the domain lands) -# - pull_request → preview deploy on a branch URL +# FR-1/FR-12 — one workflow owns every production deploy: +# - push to main → production deploy (runs when a PR is merged to main) # - hourly schedule → fresh build (news/release/docs refresh) + production deploy # - workflow_dispatch → "right now" button +# pull_request is deliberately NOT a trigger: PRs are validated by CI (ci.yml), +# which builds and uploads a `site-preview` artifact — no per-PR preview deploys. # # One-time setup (repo Settings, no Cloudflare dashboard clicks needed): # Secrets: CLOUDFLARE_API_TOKEN (Cloudflare Pages: Edit), CLOUDFLARE_ACCOUNT_ID @@ -14,7 +15,6 @@ name: Deploy on: push: branches: [main] - pull_request: schedule: # Hourly at :07, off the top of the hour. - cron: "7 * * * *" diff --git a/docs/superpowers/specs/2026-08-19-website-prd.md b/docs/superpowers/specs/2026-08-19-website-prd.md index 052a0f2..f7de75d 100644 --- a/docs/superpowers/specs/2026-08-19-website-prd.md +++ b/docs/superpowers/specs/2026-08-19-website-prd.md @@ -61,8 +61,11 @@ called Keel (keel.sh) and currently owns the bare-"keel" search results. ## 5. Functional requirements ### FR-1 Architecture -Static-first Astro site, deployed on Cloudflare Pages from this repo's `main`; every PR -gets a preview deployment. No server-side runtime except (optionally) one Cloudflare +Static-first Astro site, deployed on Cloudflare Pages from this repo's `main`; deploys +run when a PR is merged to `main` (plus an hourly content refresh and manual dispatch). +PRs are validated by CI, which uploads a build artifact for inspection — no per-PR +preview deployments (amended 2026-08-20; originally "every PR gets a preview +deployment"). No server-side runtime except (optionally) one Cloudflare Worker scoped to proxying GitHub GraphQL/REST reads with the token (FR-5/6). ### FR-2 Site map (v1)