ci: add sentry env when frontend assets build (#5131)

This commit is contained in:
Joooye_34
2023-11-29 18:03:49 +08:00
committed by GitHub
parent 1d0bcc80a0
commit 908c4e1a6f
9 changed files with 40 additions and 29 deletions

View File

@@ -35,7 +35,7 @@ jobs:
build-core: build-core:
name: Build @affine/core name: Build @affine/core
runs-on: ubuntu-latest runs-on: ubuntu-latest
environment: ${{ github.event.inputs.flavor }}
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Setup Node.js - name: Setup Node.js
@@ -52,6 +52,10 @@ jobs:
SHOULD_REPORT_TRACE: true SHOULD_REPORT_TRACE: true
TRACE_REPORT_ENDPOINT: ${{ secrets.TRACE_REPORT_ENDPOINT }} TRACE_REPORT_ENDPOINT: ${{ secrets.TRACE_REPORT_ENDPOINT }}
CAPTCHA_SITE_KEY: ${{ secrets.CAPTCHA_SITE_KEY }} CAPTCHA_SITE_KEY: ${{ secrets.CAPTCHA_SITE_KEY }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
- name: Upload core artifact - name: Upload core artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:

View File

@@ -70,8 +70,8 @@ jobs:
env: env:
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
NEXT_PUBLIC_SENTRY_DSN: ${{ secrets.NEXT_PUBLIC_SENTRY_DSN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
RELEASE_VERSION: ${{ needs.set-build-version.outputs.version }} RELEASE_VERSION: ${{ needs.set-build-version.outputs.version }}
- name: Upload core artifact - name: Upload core artifact

View File

@@ -40,6 +40,7 @@ env:
jobs: jobs:
before-make: before-make:
runs-on: ubuntu-latest runs-on: ubuntu-latest
environment: ${{ github.event.inputs.build-type || (github.ref_type == 'tag' && contains(github.ref, 'canary') && 'canary') }}
outputs: outputs:
RELEASE_VERSION: ${{ steps.get-canary-version.outputs.RELEASE_VERSION }} RELEASE_VERSION: ${{ steps.get-canary-version.outputs.RELEASE_VERSION }}
steps: steps:
@@ -65,6 +66,7 @@ jobs:
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
RELEASE_VERSION: ${{ github.event.inputs.version || steps.get-canary-version.outputs.RELEASE_VERSION }} RELEASE_VERSION: ${{ github.event.inputs.version || steps.get-canary-version.outputs.RELEASE_VERSION }}
SKIP_PLUGIN_BUILD: 'true' SKIP_PLUGIN_BUILD: 'true'

View File

@@ -56,7 +56,7 @@
"env": "SENTRY_AUTH_TOKEN" "env": "SENTRY_AUTH_TOKEN"
}, },
{ {
"env": "NEXT_PUBLIC_SENTRY_DSN" "env": "SENTRY_DSN"
}, },
{ {
"env": "DISTRIBUTION" "env": "DISTRIBUTION"

View File

@@ -351,9 +351,7 @@ export const createConfiguration: (
'process.env.CAPTCHA_SITE_KEY': JSON.stringify( 'process.env.CAPTCHA_SITE_KEY': JSON.stringify(
process.env.CAPTCHA_SITE_KEY process.env.CAPTCHA_SITE_KEY
), ),
'process.env.SENTRY_DSN': JSON.stringify( 'process.env.SENTRY_DSN': JSON.stringify(process.env.SENTRY_DSN),
process.env.SENTRY_DSN ?? process.env.NEXT_PUBLIC_SENTRY_DSN
),
'process.env.BUILD_TYPE': JSON.stringify(process.env.BUILD_TYPE), 'process.env.BUILD_TYPE': JSON.stringify(process.env.BUILD_TYPE),
runtimeConfig: JSON.stringify(runtimeConfig), runtimeConfig: JSON.stringify(runtimeConfig),
}), }),

View File

@@ -38,7 +38,7 @@
"env": "SENTRY_AUTH_TOKEN" "env": "SENTRY_AUTH_TOKEN"
}, },
{ {
"env": "NEXT_PUBLIC_SENTRY_DSN" "env": "SENTRY_DSN"
}, },
{ {
"env": "DISTRIBUTION" "env": "DISTRIBUTION"

View File

@@ -59,27 +59,29 @@ export async function setup(store: ReturnType<typeof createStore>) {
performanceSetupLogger.info('setup global'); performanceSetupLogger.info('setup global');
setupGlobal(); setupGlobal();
// https://docs.sentry.io/platforms/javascript/guides/react/#configure if (window.SENTRY_RELEASE) {
Sentry.init({ // https://docs.sentry.io/platforms/javascript/guides/react/#configure
dsn: process.env.SENTRY_DSN, Sentry.init({
environment: process.env.BUILD_TYPE ?? 'development', dsn: process.env.SENTRY_DSN,
integrations: [ environment: process.env.BUILD_TYPE ?? 'development',
new Sentry.BrowserTracing({ integrations: [
routingInstrumentation: Sentry.reactRouterV6Instrumentation( new Sentry.BrowserTracing({
useEffect, routingInstrumentation: Sentry.reactRouterV6Instrumentation(
useLocation, useEffect,
useNavigationType, useLocation,
createRoutesFromChildren, useNavigationType,
matchRoutes createRoutesFromChildren,
), matchRoutes
}), ),
new Sentry.Replay(), }),
], new Sentry.Replay(),
}); ],
Sentry.setTags({ });
appVersion: runtimeConfig.appVersion, Sentry.setTags({
editorVersion: runtimeConfig.editorVersion, appVersion: runtimeConfig.appVersion,
}); editorVersion: runtimeConfig.editorVersion,
});
}
performanceSetupLogger.info('get root workspace meta'); performanceSetupLogger.info('get root workspace meta');
// do not read `rootWorkspacesMetadataAtom` before migration // do not read `rootWorkspacesMetadataAtom` before migration

View File

@@ -31,7 +31,7 @@
"env": "SENTRY_AUTH_TOKEN" "env": "SENTRY_AUTH_TOKEN"
}, },
{ {
"env": "NEXT_PUBLIC_SENTRY_DSN" "env": "SENTRY_DSN"
}, },
{ {
"env": "DISTRIBUTION" "env": "DISTRIBUTION"

View File

@@ -56,6 +56,11 @@ declare global {
var runtimeConfig: RuntimeConfig; var runtimeConfig: RuntimeConfig;
// eslint-disable-next-line no-var // eslint-disable-next-line no-var
var $AFFINE_SETUP: boolean | undefined; var $AFFINE_SETUP: boolean | undefined;
/**
* Inject by https://www.npmjs.com/package/@sentry/webpack-plugin
*/
// eslint-disable-next-line no-var
var SENTRY_RELEASE: { id: string } | undefined;
} }
declare module '@blocksuite/store' { declare module '@blocksuite/store' {