Skip to content

Commit 46e1247

Browse files
sentry setup
1 parent 3b5f91d commit 46e1247

3 files changed

Lines changed: 45 additions & 2 deletions

File tree

.github/workflows/_gcp-deploy.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ jobs:
6060
NEXT_PUBLIC_SENTRY_ENVIRONMENT=${{ vars.NEXT_PUBLIC_SENTRY_ENVIRONMENT }}
6161
NEXT_PUBLIC_SENTRY_WEBAPP_DSN=${{ vars.NEXT_PUBLIC_SENTRY_WEBAPP_DSN }}
6262
NEXT_PUBLIC_SENTRY_BACKEND_DSN=${{ vars.NEXT_PUBLIC_SENTRY_BACKEND_DSN }}
63+
SENTRY_SMUAT=${{ secrets.SENTRY_SMUAT }}
64+
SENTRY_ORG=${{ vars.SENTRY_ORG }}
65+
SENTRY_WEBAPP_PROJECT=${{ vars.SENTRY_WEBAPP_PROJECT }}
66+
SENTRY_BACKEND_PROJECT=${{ vars.SENTRY_BACKEND_PROJECT }}
6367
6468
6569
- name: Deploy to GCP

Dockerfile

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,18 @@ ARG NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT
6363
ENV NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT=$NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT
6464
ARG NEXT_PUBLIC_SENTRY_WEBAPP_DSN
6565
ENV NEXT_PUBLIC_SENTRY_WEBAPP_DSN=$NEXT_PUBLIC_SENTRY_WEBAPP_DSN
66+
67+
# To upload source maps to Sentry, we need to set the following build-time args.
68+
# It's important that we don't set these for oss builds, otherwise the Sentry
69+
# auth token will be exposed.
70+
# @see : next.config.mjs
71+
ARG SENTRY_ORG
72+
ENV SENTRY_ORG=$SENTRY_ORG
73+
ARG SENTRY_WEBAPP_PROJECT
74+
ENV SENTRY_WEBAPP_PROJECT=$SENTRY_WEBAPP_PROJECT
75+
# SMUAT = Source Map Upload Auth Token
76+
ARG SENTRY_SMUAT
77+
ENV SENTRY_SMUAT=$SENTRY_SMUAT
6678
# -----------
6779

6880
RUN apk add --no-cache libc6-compat
@@ -88,6 +100,22 @@ ENV SKIP_ENV_VALIDATION=0
88100
# ------ Build Backend ------
89101
FROM node-alpine AS backend-builder
90102
ENV SKIP_ENV_VALIDATION=1
103+
# -----------
104+
ARG NEXT_PUBLIC_SOURCEBOT_VERSION
105+
ENV NEXT_PUBLIC_SOURCEBOT_VERSION=$NEXT_PUBLIC_SOURCEBOT_VERSION
106+
107+
# To upload source maps to Sentry, we need to set the following build-time args.
108+
# It's important that we don't set these for oss builds, otherwise the Sentry
109+
# auth token will be exposed.
110+
ARG SENTRY_ORG
111+
ENV SENTRY_ORG=$SENTRY_ORG
112+
ARG SENTRY_BACKEND_PROJECT
113+
ENV SENTRY_BACKEND_PROJECT=$SENTRY_BACKEND_PROJECT
114+
# SMUAT = Source Map Upload Auth Token
115+
ARG SENTRY_SMUAT
116+
ENV SENTRY_SMUAT=$SENTRY_SMUAT
117+
# -----------
118+
91119
WORKDIR /app
92120

93121
COPY package.json yarn.lock* .yarnrc.yml ./
@@ -101,6 +129,15 @@ COPY --from=shared-libs-builder /app/packages/crypto ./packages/crypto
101129
COPY --from=shared-libs-builder /app/packages/error ./packages/error
102130
RUN yarn workspace @sourcebot/backend install
103131
RUN yarn workspace @sourcebot/backend build
132+
133+
# Upload source maps to Sentry if we have the necessary build-time args.
134+
RUN if [ -n "$SENTRY_SMUAT" ] && [ -n "$SENTRY_ORG" ] && [ -n "$SENTRY_BACKEND_PROJECT" ] && [ -n "$NEXT_PUBLIC_SOURCEBOT_VERSION" ]; then \
135+
curl -sL https://sentry.io/get-cli/ | sh; \
136+
sentry-cli auth --token $SENTRY_SMUAT; \
137+
sentry-cli sourcemaps inject --org $SENTRY_ORG --project $SENTRY_BACKEND_PROJECT --release $NEXT_PUBLIC_SOURCEBOT_VERSION ./packages/backend/dist; \
138+
sentry-cli sourcemaps upload --org $SENTRY_ORG --project $SENTRY_BACKEND_PROJECT ./packages/backend/dist; \
139+
fi
140+
104141
ENV SKIP_ENV_VALIDATION=0
105142
# ------------------------------
106143

packages/web/next.config.mjs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,10 @@ export default withSentryConfig(nextConfig, {
4444
// For all available options, see:
4545
// https://www.npmjs.com/package/@sentry/webpack-plugin#options
4646

47-
org: "sourcebot",
48-
project: "webapp",
47+
org: process.env.SENTRY_ORG,
48+
project: process.env.SENTRY_WEBAPP_PROJECT,
49+
authToken: process.env.SENTRY_SMUAT,
50+
release: process.env.NEXT_PUBLIC_SOURCEBOT_VERSION,
4951

5052
// Only print logs for uploading source maps in CI
5153
silent: !process.env.CI,

0 commit comments

Comments
 (0)