From 7eb2b732d33c6d2c54baf3b5552fb275e6cd674e Mon Sep 17 00:00:00 2001 From: Jason Robinaugh Date: Fri, 1 May 2026 16:50:37 -0400 Subject: [PATCH] docs(releases): Add release-automation guide for RWX Document creating Sentry releases and notifying Sentry of deploys from RWX, mirroring the shape of the CircleCI guide. Covers internal- integration setup, storing credentials in RWX vaults, and an end-to-end run config that builds, deploys, uploads source maps, and records the deploy. Co-Authored-By: Claude --- .../img/internal-integration-permissions.png | Bin 0 -> 24309 bytes .../setup/release-automation/rwx/index.mdx | 89 ++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 docs/product/releases/setup/release-automation/rwx/img/internal-integration-permissions.png create mode 100644 docs/product/releases/setup/release-automation/rwx/index.mdx diff --git a/docs/product/releases/setup/release-automation/rwx/img/internal-integration-permissions.png b/docs/product/releases/setup/release-automation/rwx/img/internal-integration-permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..127d900d89898fd5e3bbb2efc5e6a505db29495c GIT binary patch literal 24309 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 aSLdMrc>(Ji_TPjBL>j8PDmBk+-~J!Ty>1@> literal 0 HcmV?d00001 diff --git a/docs/product/releases/setup/release-automation/rwx/index.mdx b/docs/product/releases/setup/release-automation/rwx/index.mdx new file mode 100644 index 0000000000000..d4253f2928775 --- /dev/null +++ b/docs/product/releases/setup/release-automation/rwx/index.mdx @@ -0,0 +1,89 @@ +--- +title: RWX +description: >- + Learn how Sentry and RWX automate release management and help identify + suspect commits. +--- + +This guide walks you through the process of automating Sentry release management and deploy notifications in [RWX](https://www.rwx.com/). After deploying with RWX, you'll be able to associate commits with releases. You'll also be able to apply source maps to see the original code in Sentry. + +Before starting, confirm that your Sentry project is properly set up to track commit metadata by [installing a repository integration](/product/releases/setup/release-automation/). Once that's installed, and you've added your repository, come back to this guide. If you've already installed a repository integration, you're ready to go. + +## Create a Sentry Internal Integration + +For RWX to communicate securely with Sentry, you'll need to create a new internal integration. In Sentry, navigate to **Settings > Developer Settings > New Internal Integration**. + +Give your new integration a name (for example, "RWX Deploy Integration") and specify the necessary permissions. In this case, you need Admin access for "Release" and Read access for "Organization". + +For more details about scopes and API endpoints, see the full documentation on [API Permissions](/api/permissions/). + +![View of internal integration permissions.](./img/internal-integration-permissions.png) + +Click "Save", then record your token, which you'll need in the next section. + +## Configure Secrets and Vars in RWX + +Store your Sentry auth token as a [secret](https://www.rwx.com/docs/secrets) in an RWX [vault](https://www.rwx.com/docs/vaults). Using the default vault: + + + +```bash +rwx vaults secrets set sentry-auth-token=___ORG_AUTH_TOKEN___ +``` + +You'll reference it from a run as `${{ secrets.sentry-auth-token }}`. + +## Create Release and Notify Sentry of Deployment + +To automate your Sentry release management process, add a `sentry-release` task that runs [after](https://www.rwx.com/docs/after) your deploy task succeeds. This example installs `sentry-cli` in its own task so it can be cached and reused across runs: + +```yaml +on: + github: + push: + init: + commit-sha: ${{ event.git.sha }} + +base: + image: ubuntu:24.04 + config: rwx/base 1.0.2 + +tasks: + - key: code + call: git/clone 2.0.7 + with: + repository: https://github.com/YOUR-ORG/YOUR-REPO.git + ref: ${{ init.commit-sha }} + github-token: ${{ github.token }} + preserve-git-dir: true + + - key: deploy + use: code + run: ./bin/deploy + + - key: sentry-cli + run: | + mkdir -p bin + curl -sL https://sentry.io/get-cli/ | INSTALL_DIR=$PWD/bin bash + echo "$PWD/bin" > $RWX_ENV/PATH + + - key: sentry-release + use: [code, sentry-cli] + after: deploy + run: | + export SENTRY_RELEASE=$(sentry-cli releases propose-version) + sentry-cli releases new -p $SENTRY_PROJECT $SENTRY_RELEASE + sentry-cli releases set-commits $SENTRY_RELEASE --auto + sentry-cli sourcemaps upload --release $SENTRY_RELEASE path-to-sourcemaps-if-applicable + sentry-cli releases finalize $SENTRY_RELEASE + sentry-cli deploys new -e $SENTRY_ENVIRONMENT + env: + SENTRY_AUTH_TOKEN: ${{ secrets.sentry-auth-token }} + SENTRY_ORG: ___ORG_SLUG___ + SENTRY_PROJECT: ___PROJECT_SLUG___ + SENTRY_ENVIRONMENT: production +``` + +For more details about the release management concepts in the snippet above, see the full documentation on [release management](/cli/releases/). + +For more information on release management within RWX, see [their docs](https://www.rwx.com/docs/guides/sentry-release).