Files
Pranay Prakash 11dc036854 ci: stop deploying changeset-release/main, run its e2e against production (#3243)
* ci: stop deploying changeset-release/main, run its e2e against production

The changesets action force-pushes `changeset-release/main`, and it can
point at exactly main's HEAD SHA. Vercel keeps one commit status per
project per SHA, so when both a production deployment (from main) and a
preview deployment (from changeset-release/main) are built for the same
commit, whichever finishes last owns the status. On 2026-07-30 the
preview finished last, so `vercel/wait-for-deployment-action` — which
reads the deployment ID out of that status — handed production e2e runs
a preview deployment ID and forked runs across environments.

Disable git deployments for that branch in every Vercel project rooted
in this repo, and give the changeset PR's Vercel e2e lanes a deployment
to test that actually exists: main's production deployment for the PR's
base SHA, resolved by SHA so a mid-flight production build is waited out
rather than silently replaced by an older one.

Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>

* ci: resolve changeset-release e2e deployments with the wait action, tokenless

Per review: with changeset-release/main no longer deployed, main SHAs
can never again be deployed to a second environment of these projects,
so the per-SHA commit status the action reads is unambiguous for
exactly this lane. Reuse vercel/wait-for-deployment-action with
environment: production and sha pinned to the PR base SHA instead of
the Vercel-API polling script, drop the script and its VERCEL_TOKEN
usage, and inherit the action's inactive/skipped-build handling.

Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>

---------

Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
2026-07-31 10:09:36 -07:00
..
2026-05-11 13:21:13 -07:00

tarballs

Static Vercel project that builds and serves preview tarballs for every public package in packages/*.

For each public package, scripts/pack.ts:

  1. Rewrites the package version to <version>-<git-sha>, updates generated version files to match, and rewrites every workspace dependency to a tarball URL on the current Vercel deployment (https://$VERCEL_URL/<escaped-name>.tgz).
  2. Runs pnpm pack and writes the result to public/<escaped-name>.tgz.
  3. Restores the original package.json and generated version files.

It also generates a public/index.html that lists every published package alongside a copyable pnpm i … command, so the bare deployment URL is itself useful when shared.

The deployment serves the resulting *.tgz files at the root of the project URL — e.g. https://<deployment>.vercel.sh/workflow.tgz.

This is used for pre-release testing of vercel/workflow PRs by installing tarballs directly:

{
  "dependencies": {
    "workflow": "https://<deployment>.vercel.sh/workflow.tgz"
  }
}

The Vercel project must be configured to be publicly accessible (no Deployment Protection on previews or production) so that pnpm/npm can fetch tarball URLs from third-party projects. The smoke check (scripts/check-tarballs-smoke.mjs) verifies this on every deployment and fails loudly if the deployment is behind a login redirect.