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 distzio/stable
parent
b778017000
commit
6f7032d42b
|
@ -1,12 +1,41 @@
|
||||||
|
const pkg = require('./package.json')
|
||||||
|
|
||||||
module.exports = function () {
|
module.exports = function () {
|
||||||
const hasSentryToken = !!process.env.SENTRY_AUTH_TOKEN
|
/**
|
||||||
|
* App version number. Should be incremented as part of a release cycle.
|
||||||
|
*/
|
||||||
|
const VERSION = pkg.version
|
||||||
|
|
||||||
|
/**
|
||||||
|
* iOS build number. Must be incremented for each TestFlight version.
|
||||||
|
*/
|
||||||
|
const IOS_BUILD_NUMBER = '4'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Android build number. Must be incremented for each release.
|
||||||
|
*/
|
||||||
|
const ANDROID_VERSION_CODE = 46
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uses built-in Expo env vars
|
||||||
|
*
|
||||||
|
* @see https://docs.expo.dev/build-reference/variables/#built-in-environment-variables
|
||||||
|
*/
|
||||||
|
const PLATFORM = process.env.EAS_BUILD_PLATFORM
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Additional granularity for the `dist` field
|
||||||
|
*/
|
||||||
|
const DIST_BUILD_NUMBER =
|
||||||
|
PLATFORM === 'android' ? ANDROID_VERSION_CODE : IOS_BUILD_NUMBER
|
||||||
|
|
||||||
return {
|
return {
|
||||||
expo: {
|
expo: {
|
||||||
|
version: VERSION,
|
||||||
name: 'Bluesky',
|
name: 'Bluesky',
|
||||||
slug: 'bluesky',
|
slug: 'bluesky',
|
||||||
scheme: 'bluesky',
|
scheme: 'bluesky',
|
||||||
owner: 'blueskysocial',
|
owner: 'blueskysocial',
|
||||||
version: '1.57.0',
|
|
||||||
runtimeVersion: {
|
runtimeVersion: {
|
||||||
policy: 'appVersion',
|
policy: 'appVersion',
|
||||||
},
|
},
|
||||||
|
@ -19,7 +48,7 @@ module.exports = function () {
|
||||||
backgroundColor: '#ffffff',
|
backgroundColor: '#ffffff',
|
||||||
},
|
},
|
||||||
ios: {
|
ios: {
|
||||||
buildNumber: '4',
|
buildNumber: IOS_BUILD_NUMBER,
|
||||||
supportsTablet: false,
|
supportsTablet: false,
|
||||||
bundleIdentifier: 'xyz.blueskyweb.app',
|
bundleIdentifier: 'xyz.blueskyweb.app',
|
||||||
config: {
|
config: {
|
||||||
|
@ -43,7 +72,7 @@ module.exports = function () {
|
||||||
backgroundColor: '#ffffff',
|
backgroundColor: '#ffffff',
|
||||||
},
|
},
|
||||||
android: {
|
android: {
|
||||||
versionCode: 46,
|
versionCode: ANDROID_VERSION_CODE,
|
||||||
adaptiveIcon: {
|
adaptiveIcon: {
|
||||||
foregroundImage: './assets/adaptive-icon.png',
|
foregroundImage: './assets/adaptive-icon.png',
|
||||||
backgroundColor: '#ffffff',
|
backgroundColor: '#ffffff',
|
||||||
|
@ -74,7 +103,7 @@ module.exports = function () {
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
'expo-localization',
|
'expo-localization',
|
||||||
hasSentryToken && 'sentry-expo',
|
Boolean(process.env.SENTRY_AUTH_TOKEN) && 'sentry-expo',
|
||||||
[
|
[
|
||||||
'expo-build-properties',
|
'expo-build-properties',
|
||||||
{
|
{
|
||||||
|
@ -100,11 +129,16 @@ module.exports = function () {
|
||||||
},
|
},
|
||||||
hooks: {
|
hooks: {
|
||||||
postPublish: [
|
postPublish: [
|
||||||
|
/*
|
||||||
|
* @see https://docs.expo.dev/guides/using-sentry/#app-configuration
|
||||||
|
*/
|
||||||
{
|
{
|
||||||
file: 'sentry-expo/upload-sourcemaps',
|
file: 'sentry-expo/upload-sourcemaps',
|
||||||
config: {
|
config: {
|
||||||
organization: 'blueskyweb',
|
organization: 'blueskyweb',
|
||||||
project: 'react-native',
|
project: 'react-native',
|
||||||
|
release: VERSION,
|
||||||
|
dist: `${PLATFORM}.${VERSION}.${DIST_BUILD_NUMBER}`,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
25
eas.json
25
eas.json
|
@ -11,28 +11,19 @@
|
||||||
"extends": "base",
|
"extends": "base",
|
||||||
"developmentClient": true,
|
"developmentClient": true,
|
||||||
"distribution": "internal",
|
"distribution": "internal",
|
||||||
|
"channel": "development",
|
||||||
"ios": {
|
"ios": {
|
||||||
"simulator": true,
|
"simulator": true,
|
||||||
"resourceClass": "large"
|
"resourceClass": "large"
|
||||||
},
|
}
|
||||||
"channel": "development"
|
|
||||||
},
|
|
||||||
"development-device": {
|
|
||||||
"extends": "base",
|
|
||||||
"developmentClient": true,
|
|
||||||
"distribution": "internal",
|
|
||||||
"ios": {
|
|
||||||
"resourceClass": "large"
|
|
||||||
},
|
|
||||||
"channel": "development"
|
|
||||||
},
|
},
|
||||||
"preview": {
|
"preview": {
|
||||||
"extends": "base",
|
"extends": "base",
|
||||||
"distribution": "internal",
|
"distribution": "internal",
|
||||||
|
"channel": "preview",
|
||||||
"ios": {
|
"ios": {
|
||||||
"resourceClass": "large"
|
"resourceClass": "large"
|
||||||
},
|
}
|
||||||
"channel": "preview"
|
|
||||||
},
|
},
|
||||||
"production": {
|
"production": {
|
||||||
"extends": "base",
|
"extends": "base",
|
||||||
|
@ -40,14 +31,6 @@
|
||||||
"resourceClass": "large"
|
"resourceClass": "large"
|
||||||
},
|
},
|
||||||
"channel": "production"
|
"channel": "production"
|
||||||
},
|
|
||||||
"dev-android-apk": {
|
|
||||||
"extends": "base",
|
|
||||||
"developmentClient": true,
|
|
||||||
"android": {
|
|
||||||
"buildType": "apk",
|
|
||||||
"gradleCommand": ":app:assembleRelease"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"submit": {
|
"submit": {
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
"perf:test:measure": "NODE_ENV=test flashlight test --bundleId xyz.blueskyweb.app --testCommand 'yarn perf:test' --duration 150000 --resultsFilePath .perf/results.json",
|
"perf:test:measure": "NODE_ENV=test flashlight test --bundleId xyz.blueskyweb.app --testCommand 'yarn perf:test' --duration 150000 --resultsFilePath .perf/results.json",
|
||||||
"perf:test:results": "NODE_ENV=test flashlight report .perf/results.json",
|
"perf:test:results": "NODE_ENV=test flashlight report .perf/results.json",
|
||||||
"perf:measure": "NODE_ENV=test flashlight measure",
|
"perf:measure": "NODE_ENV=test flashlight measure",
|
||||||
"build:apk": "eas build -p android --profile dev-android-apk",
|
|
||||||
"intl:extract": "lingui extract",
|
"intl:extract": "lingui extract",
|
||||||
"intl:compile": "lingui compile"
|
"intl:compile": "lingui compile"
|
||||||
},
|
},
|
||||||
|
|
|
@ -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'
|
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({
|
init({
|
||||||
dsn: 'https://05bc3789bf994b81bd7ce20c86ccd3ae@o4505071687041024.ingest.sentry.io/4505071690514432',
|
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
|
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,
|
||||||
})
|
})
|
||||||
|
|
|
@ -288,16 +288,13 @@ export class Logger {
|
||||||
*/
|
*/
|
||||||
export const logger = new Logger()
|
export const logger = new Logger()
|
||||||
|
|
||||||
/**
|
|
||||||
* Report to console in dev, Sentry in prod, nothing in test.
|
|
||||||
*/
|
|
||||||
if (env.IS_DEV && !env.IS_TEST) {
|
if (env.IS_DEV && !env.IS_TEST) {
|
||||||
logger.addTransport(consoleTransport)
|
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) {
|
} else if (env.IS_PROD) {
|
||||||
// logger.addTransport(sentryTransport)
|
logger.addTransport(sentryTransport)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue