about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2023-11-28 21:49:37 -0600
committerGitHub <noreply@github.com>2023-11-28 21:49:37 -0600
commit6f7032d42b85298b95f9a55d2dd4809450c6fa64 (patch)
treeac3e744c03c7c3d5ae872b7b32908559b45511b0 /src
parentb778017000eeed028edc5cd8fa89d64d4d90dc32 (diff)
downloadvoidsky-6f7032d42b85298b95f9a55d2dd4809450c6fa64.tar.zst
Full send Sentry (#2018)
* Update build profiles, sentry config

* Enable sentry

* Ok actually enable in dev

* Remove debug

* Add TF build

* Fix typo

* Remove debug

* Remove unecessary config

* Fix typo

* Set env in Expo

* Remove scripts

* Clarify

* Replace invalid character

* Align on release/dist

* Add build version

* Just use package version

* Align dist
Diffstat (limited to 'src')
-rw-r--r--src/lib/sentry.ts42
-rw-r--r--src/logger/index.ts9
2 files changed, 43 insertions, 8 deletions
diff --git a/src/lib/sentry.ts b/src/lib/sentry.ts
index b080bcc5c..63a21a43c 100644
--- a/src/lib/sentry.ts
+++ b/src/lib/sentry.ts
@@ -1,8 +1,46 @@
+/**
+ * Importing these separately from `platform/detection` and `lib/app-info` to
+ * avoid future conflicts and/or circular deps
+ */
+
+import {Platform} from 'react-native'
+import app from 'react-native-version-number'
+import * as info from 'expo-updates'
 import {init} from 'sentry-expo'
 
+/**
+ * Matches the build profile `channel` props in `eas.json`
+ */
+const buildChannel = (info.channel || 'development') as
+  | 'development'
+  | 'preview'
+  | 'production'
+
+/**
+ * Examples:
+ * - `dev`
+ * - `1.57.0`
+ */
+const release = app.appVersion ?? 'dev'
+
+/**
+ * Examples:
+ * - `web.dev`
+ * - `ios.dev`
+ * - `android.dev`
+ * - `web.1.57.0`
+ * - `ios.1.57.0.3`
+ * - `android.1.57.0.46`
+ */
+const dist = `${Platform.OS}.${release}${
+  app.buildVersion ? `.${app.buildVersion}` : ''
+}`
+
 init({
   dsn: 'https://05bc3789bf994b81bd7ce20c86ccd3ae@o4505071687041024.ingest.sentry.io/4505071690514432',
-  enableInExpoDevelopment: false, // if true, Sentry will try to send events/errors in development mode.
   debug: false, // If `true`, Sentry will try to print out useful debugging information if something goes wrong with sending the event. Set it to `false` in production
-  environment: __DEV__ ? 'development' : 'production', // Set the environment
+  enableInExpoDevelopment: true,
+  environment: buildChannel,
+  dist,
+  release,
 })
diff --git a/src/logger/index.ts b/src/logger/index.ts
index 9f79a7812..59cb84ff4 100644
--- a/src/logger/index.ts
+++ b/src/logger/index.ts
@@ -288,16 +288,13 @@ export class Logger {
  */
 export const logger = new Logger()
 
-/**
- * Report to console in dev, Sentry in prod, nothing in test.
- */
 if (env.IS_DEV && !env.IS_TEST) {
   logger.addTransport(consoleTransport)
 
   /**
-   * Uncomment this to test Sentry in dev
+   * Comment this out to disable Sentry transport in dev
    */
-  // logger.addTransport(sentryTransport);
+  logger.addTransport(sentryTransport)
 } else if (env.IS_PROD) {
-  // logger.addTransport(sentryTransport)
+  logger.addTransport(sentryTransport)
 }