@@ -63,6 +63,18 @@ ARG NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT
6363ENV NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT=$NEXT_PUBLIC_SOURCEBOT_CLOUD_ENVIRONMENT
6464ARG NEXT_PUBLIC_SENTRY_WEBAPP_DSN
6565ENV 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
6880RUN apk add --no-cache libc6-compat
@@ -88,6 +100,22 @@ ENV SKIP_ENV_VALIDATION=0
88100# ------ Build Backend ------
89101FROM node-alpine AS backend-builder
90102ENV 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+
91119WORKDIR /app
92120
93121COPY package.json yarn.lock* .yarnrc.yml ./
@@ -101,6 +129,15 @@ COPY --from=shared-libs-builder /app/packages/crypto ./packages/crypto
101129COPY --from=shared-libs-builder /app/packages/error ./packages/error
102130RUN yarn workspace @sourcebot/backend install
103131RUN 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+
104141ENV SKIP_ENV_VALIDATION=0
105142# ------------------------------
106143
0 commit comments