diff --git a/.github/workflows/deploy-relay.yml b/.github/workflows/deploy-relay.yml index 15637840a..7712bd66c 100644 --- a/.github/workflows/deploy-relay.yml +++ b/.github/workflows/deploy-relay.yml @@ -1,11 +1,8 @@ name: Deploy Relay on: - push: - branches: [main] - paths: - - "packages/relay/**" - - ".github/workflows/deploy-relay.yml" + # Manual-only while relay.paseo.sh bridges traffic to the Fly deployment. + # A release or main push must not redeploy the temporary Cloudflare bridge. workflow_dispatch: jobs: diff --git a/docs/release.md b/docs/release.md index 7ca078a20..668ba5782 100644 --- a/docs/release.md +++ b/docs/release.md @@ -52,6 +52,8 @@ This bumps the version across all workspaces, runs checks, publishes to npm, and The Docker workflow builds images from the checked-out source tree on pull requests and on `main` as non-publishing checks. Stable `vX.Y.Z` tag pushes publish `ghcr.io/getpaseo/paseo:X.Y.Z` and `ghcr.io/getpaseo/paseo:latest`; beta `vX.Y.Z-beta.N` tag pushes publish only `ghcr.io/getpaseo/paseo:X.Y.Z-beta.N` and never move `latest`. +Relay deployment is manual-only while `relay.paseo.sh` bridges traffic to the Fly deployment. Releases and pushes to `main` do not deploy the Cloudflare relay worker. Deploy it explicitly with `gh workflow run deploy-relay.yml` only when the production bridge should change. + **Releases are always patch.** "Release paseo", "release stable", "ship stable", and similar always mean a patch bump from the previous stable. Never bump minor or major to trigger a build, ever — minor and major bumps are reserved for genuinely larger product cuts and require an explicit user instruction with the word "minor" or "major". If you find yourself reaching for `release:minor` to retrigger a failed build, you are doing the wrong thing — push a retry tag instead (see "Fixing a failed release build" below). **Stable means stable.** If the user says "stable" or "ship stable", do not ask whether they want a beta first. They picked stable; treat it as a direct stable release. Only run the beta flow when the user explicitly says "beta".