diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7487db2..e6a6846 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -177,6 +177,8 @@ jobs: - name: Build for production run: pnpm build + env: + VITE_SENTRY_ENVIRONMENT: ci - name: Run E2E tests run: pnpm test:e2e diff --git a/apps/journal/app/entry.client.tsx b/apps/journal/app/entry.client.tsx index 4536727..656a377 100644 --- a/apps/journal/app/entry.client.tsx +++ b/apps/journal/app/entry.client.tsx @@ -3,14 +3,17 @@ import { startTransition, StrictMode } from "react"; import { hydrateRoot } from "react-dom/client"; import { HydratedRouter } from "react-router/dom"; +const sentryEnvironment = import.meta.env.VITE_SENTRY_ENVIRONMENT ?? + (import.meta.env.PROD ? "production" : "development"); + Sentry.init({ dsn: "https://a32ffcc575d34be072e91b20f247eeee@o4509530546634752.ingest.de.sentry.io/4509530555547728", integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()], - environment: import.meta.env.PROD ? "production" : "development", - tracesSampleRate: 0.1, + environment: sentryEnvironment, + tracesSampleRate: sentryEnvironment === "ci" ? 0 : 0.1, replaysSessionSampleRate: 0, - replaysOnErrorSampleRate: 1.0, - enabled: import.meta.env.PROD, + replaysOnErrorSampleRate: sentryEnvironment === "ci" ? 0 : 1.0, + enabled: import.meta.env.PROD && sentryEnvironment !== "ci", }); startTransition(() => { diff --git a/apps/journal/app/entry.server.tsx b/apps/journal/app/entry.server.tsx index b40a03d..8883803 100644 --- a/apps/journal/app/entry.server.tsx +++ b/apps/journal/app/entry.server.tsx @@ -7,12 +7,14 @@ import { isbot } from "isbot"; import type { RenderToPipeableStreamOptions } from "react-dom/server"; import { renderToPipeableStream } from "react-dom/server"; +const sentryEnvironment = process.env.CI ? "ci" : (process.env.NODE_ENV ?? "development"); + Sentry.init({ dsn: "https://a32ffcc575d34be072e91b20f247eeee@o4509530546634752.ingest.de.sentry.io/4509530555547728", release: process.env.SENTRY_RELEASE, - environment: process.env.NODE_ENV ?? "development", + environment: sentryEnvironment, tracesSampleRate: 0.1, - enabled: process.env.NODE_ENV === "production", + enabled: process.env.NODE_ENV === "production" && !process.env.CI, }); export const streamTimeout = 5_000; diff --git a/apps/planner/app/entry.client.tsx b/apps/planner/app/entry.client.tsx index 8f1d055..d06f0f5 100644 --- a/apps/planner/app/entry.client.tsx +++ b/apps/planner/app/entry.client.tsx @@ -3,14 +3,17 @@ import { startTransition, StrictMode } from "react"; import { hydrateRoot } from "react-dom/client"; import { HydratedRouter } from "react-router/dom"; +const sentryEnvironment = import.meta.env.VITE_SENTRY_ENVIRONMENT ?? + (import.meta.env.PROD ? "production" : "development"); + Sentry.init({ dsn: "https://5215134cd78d5e6c199e29300b8425af@o4509530546634752.ingest.de.sentry.io/4511102546608208", integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()], - environment: import.meta.env.PROD ? "production" : "development", - tracesSampleRate: 0.1, + environment: sentryEnvironment, + tracesSampleRate: sentryEnvironment === "ci" ? 0 : 0.1, replaysSessionSampleRate: 0, - replaysOnErrorSampleRate: 1.0, - enabled: import.meta.env.PROD, + replaysOnErrorSampleRate: sentryEnvironment === "ci" ? 0 : 1.0, + enabled: import.meta.env.PROD && sentryEnvironment !== "ci", }); startTransition(() => { diff --git a/apps/planner/server.ts b/apps/planner/server.ts index a8e1d59..e61a801 100644 --- a/apps/planner/server.ts +++ b/apps/planner/server.ts @@ -5,12 +5,14 @@ import { createReadStream, statSync } from "node:fs"; import { join, extname, resolve } from "node:path"; import { setupYjsWebSocket } from "./app/lib/yjs-server.ts"; +const sentryEnvironment = process.env.CI ? "ci" : (process.env.NODE_ENV ?? "development"); + Sentry.init({ dsn: "https://5215134cd78d5e6c199e29300b8425af@o4509530546634752.ingest.de.sentry.io/4511102546608208", release: process.env.SENTRY_RELEASE, - environment: process.env.NODE_ENV ?? "development", + environment: sentryEnvironment, tracesSampleRate: 0.1, - enabled: process.env.NODE_ENV === "production", + enabled: process.env.NODE_ENV === "production" && !process.env.CI, }); const port = Number(process.env.PORT ?? 3001);