Files
redwoodjs__local-ci/RELEASING.md
T
Peter Pistorius b54494314c docs: document website release command (CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_ENV) (#265)
Adds a 'Releasing the Website' section to RELEASING.md covering the
exact command used to deploy agent-ci.dev:

  cd apps/website
  CLOUDFLARE_ACCOUNT_ID=... CLOUDFLARE_ENV=production pnpm release

The env vars are required because the Wrangler OAuth user has access
to multiple Cloudflare accounts, and the deploy script runs
non-interactively.

No changeset: docs-only, does not touch packages/.
2026-04-17 17:51:38 +02:00

2.7 KiB

Releasing

Agent CI uses Changesets to manage versioning and publishing. The CLI (agent-ci) and DTU (dtu-github-actions) are always released together at the same version.

Making a Release

1. Add a Changeset

When you make a change worth releasing, run:

pnpm changeset

This opens an interactive prompt where you:

  • Select the packages affected (both are bumped together regardless)
  • Choose the bump type: patch, minor, or major
  • Write a summary of the change

This creates a markdown file in .changeset/ — commit it with your PR.

2. Merge to main

When your PR is merged, the release workflow runs automatically and creates a "Version Packages" PR that:

  • Bumps versions in both package.json files
  • Updates CHANGELOG.md in each package
  • Consumes the changeset files

Multiple changesets accumulate into a single Version PR.

3. Publish

Merge the "Version Packages" PR. The release workflow runs again, this time:

  • Builds both packages
  • Publishes to npm
  • Creates git tags

Setup

The GitHub repo needs an NPM_TOKEN secret with publish access.

Local Commands

Command Description
pnpm changeset Add a new changeset
pnpm version Apply pending changesets locally (for testing)
pnpm release Build all packages and publish to npm
pnpm -r build Build all packages without publishing

Releasing the Website (agent-ci.dev)

The marketing site at apps/website/ is deployed to Cloudflare Workers on the RedwoodJS Cloudflare account. It is not part of the npm release flow above — it's deployed manually.

cd apps/website
CLOUDFLARE_ACCOUNT_ID=1634a8e653b2ce7e0f7a23cca8cbd86a CLOUDFLARE_ENV=production pnpm release

Notes:

  • CLOUDFLARE_ACCOUNT_ID picks the RedwoodJS Cloudflare account non-interactively (the OAuth user may have access to multiple accounts).
  • CLOUDFLARE_ENV=production selects the production deploy target.
  • pnpm release runs: ensure-deploy-env → clean → build → wrangler deploy. The prebuild hook copies the public CLI docs into public/docs/ and regenerates public/.well-known/agent-skills/index.json, so the site never drifts from packages/cli/*.md.
  • After deploying, smoke-test with curl -I https://agent-ci.dev/robots.txt and curl https://agent-ci.dev/sitemap.xml.
  • You need to be logged in to Wrangler on an account with write access to the RedwoodJS Cloudflare org: pnpm dlx wrangler login.