Files
76fc2abdef chore: tx-builder path-filtered changelog for releases (#7540)
* chore: tx-builder changelog and release docs

* fix: prettier

* fix: generate changelog before creating git tag

Move the changelog generation step before the tag creation step so that
the previous tag lookup finds the correct prior tag, not the one just
created in the same workflow run.

* chore: update tx-builder dev URL to new staging domain

Replace safe-apps.dev.5afe.dev/tx-builder with
tx-builder.staging.5afe.dev across source, tests, fixtures,
and snapshots.

* chore: remove redundant heading from release body

The release name already shows the version, so the heading in the body
was duplicating it.

---------

Co-authored-by: Hanzo Dev <[email protected]>
2026-03-26 17:11:36 +01:00

3.3 KiB

TX-Builder Release Procedure

The tx-builder is a Safe App served at https://apps-portal.safe.global/tx-builder. It has three deployment environments, each triggered automatically by the CI workflow (.github/workflows/tx-builder-deploy.yml).

Environments

Environment URL Trigger Base path
PR Preview https://{branch}--tx-builder.review.5afe.dev/ Pull request /
Staging https://tx-builder.staging.5afe.dev/ Push to dev /
Production https://apps-portal.safe.global/tx-builder Manual (see below) /tx-builder/

PR Preview

Any pull request that touches apps/tx-builder/** or packages/** automatically builds and deploys a preview.

  • The preview URL is posted as a comment on the PR
  • The build uses the default base path (/), same as staging
  • Previews are cleaned up when the branch is deleted

No action required from developers — this happens automatically.

Staging

When code is merged to the dev branch (and touches tx-builder or shared packages), the staging deployment runs automatically.

  • Served at https://tx-builder.staging.5afe.dev/
  • Uses the default base path (/)
  • No version bump needed — staging always reflects the latest dev

Production Release

Production releases are a two-step process: the developer prepares a release, then DevOps deploys it.

Step 1: Prepare the release

  1. Bump the version in apps/tx-builder/package.json
  2. Merge the version bump to dev via PR
  3. Run the workflow: Go to Actions > tx-builder Deploy, click "Run workflow" on the dev branch with release checked

The workflow will:

  • Build the app with VITE_BASE_PATH=/tx-builder/ (so assets resolve from the /tx-builder/ subdirectory)
  • Create a .tar.gz archive of the build
  • Create a git tag (tx-builder-v{VERSION})
  • Create a GitHub Release with the archive attached and a changelog filtered to tx-builder commits

Step 2: Deploy to production

Provide the release tag to DevOps for production deployment.

Base Path

Production serves the app from a subdirectory (/tx-builder/), while staging and previews serve from the root (/). This is handled by the VITE_BASE_PATH environment variable in vite.config.ts:

  • Not set (default): base: '/' — staging and PR previews
  • Set to /tx-builder/: assets are prefixed with /tx-builder/ and BrowserRouter basename adjusts accordingly

Only the prepare-release workflow job sets this variable. Staging and preview builds are unaffected.

Release Tags

All tx-builder releases are tagged as tx-builder-v{VERSION} (e.g., tx-builder-v2.0.0). This distinguishes them from web app releases (web-v{VERSION}) in the shared monorepo.

Rollback

To roll back to a previous version, ask DevOps to download and deploy the .tar.gz from an earlier GitHub Release. All past releases are available at github.com/safe-global/safe-wallet-monorepo/releases (filter by tx-builder-v tags).