Skip to content

Commit 421585c

Browse files
committed
Merge branch 'develop' into timfish/feat/fetch-breadcrumbs-without-tracing
2 parents bbc5932 + b271bc8 commit 421585c

1,004 files changed

Lines changed: 10614 additions & 3507 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 47 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ env:
4444
${{ github.workspace }}/packages/*/build
4545
${{ github.workspace }}/packages/ember/*.d.ts
4646
${{ github.workspace }}/packages/gatsby/*.d.ts
47-
${{ github.workspace }}/packages/core/src/version.ts
4847
${{ github.workspace }}/packages/utils/cjs
4948
${{ github.workspace }}/packages/utils/esm
5049
@@ -796,12 +795,21 @@ jobs:
796795
# - The build job was successful, not skipped
797796
# - AND if the profiling node bindings were either successful or skipped
798797
if: |
799-
always() && needs.job_build.result == 'success' &&
798+
always() &&
799+
needs.job_build.result == 'success' &&
800800
(needs.job_compile_bindings_profiling_node.result == 'success' || needs.job_compile_bindings_profiling_node.result == 'skipped')
801801
needs: [job_get_metadata, job_build, job_compile_bindings_profiling_node]
802802
runs-on: ubuntu-20.04-large-js
803803
timeout-minutes: 15
804+
outputs:
805+
matrix: ${{ steps.matrix.outputs.matrix }}
806+
matrix-optional: ${{ steps.matrix-optional.outputs.matrix }}
804807
steps:
808+
- name: Check out base commit (${{ github.event.pull_request.base.sha }})
809+
uses: actions/checkout@v4
810+
if: github.event_name == 'pull_request'
811+
with:
812+
ref: ${{ github.event.pull_request.base.sha }}
805813
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
806814
uses: actions/checkout@v4
807815
with:
@@ -851,11 +859,21 @@ jobs:
851859
path: ${{ github.workspace }}/packages/*/*.tgz
852860
key: ${{ env.BUILD_CACHE_TARBALL_KEY }}
853861

862+
- name: Determine which E2E test applications should be run
863+
id: matrix
864+
run: yarn --silent ci:build-matrix --base=${{ (github.event_name == 'pull_request' && github.event.pull_request.base.sha) || '' }} >> $GITHUB_OUTPUT
865+
working-directory: dev-packages/e2e-tests
866+
867+
- name: Determine which optional E2E test applications should be run
868+
id: matrix-optional
869+
run: yarn --silent ci:build-matrix-optional --base=${{ (github.event_name == 'pull_request' && github.event.pull_request.base.sha) || '' }} >> $GITHUB_OUTPUT
870+
working-directory: dev-packages/e2e-tests
871+
854872
job_e2e_tests:
855873
name: E2E ${{ matrix.label || matrix.test-application }} Test
856874
# We need to add the `always()` check here because the previous step has this as well :(
857875
# See: https://github.com/actions/runner/issues/2205
858-
if: always() && needs.job_e2e_prepare.result == 'success'
876+
if: always() && needs.job_e2e_prepare.result == 'success' && needs.job_e2e_prepare.outputs.matrix != '{"include":[]}'
859877
needs: [job_get_metadata, job_build, job_e2e_prepare]
860878
runs-on: ubuntu-20.04
861879
timeout-minutes: 15
@@ -870,103 +888,7 @@ jobs:
870888
E2E_TEST_SENTRY_PROJECT: 'sentry-javascript-e2e-tests'
871889
strategy:
872890
fail-fast: false
873-
matrix:
874-
is_dependabot:
875-
- ${{ github.actor == 'dependabot[bot]' }}
876-
test-application:
877-
[
878-
'angular-17',
879-
'angular-18',
880-
'astro-4',
881-
'aws-lambda-layer-cjs',
882-
'aws-serverless-esm',
883-
'node-express',
884-
'create-react-app',
885-
'create-next-app',
886-
'create-remix-app',
887-
'create-remix-app-legacy',
888-
'create-remix-app-v2',
889-
'create-remix-app-v2-legacy',
890-
'create-remix-app-express',
891-
'create-remix-app-express-legacy',
892-
'create-remix-app-express-vite-dev',
893-
'default-browser',
894-
'node-express-esm-loader',
895-
'node-express-esm-preload',
896-
'node-express-esm-without-loader',
897-
'node-express-cjs-preload',
898-
'node-otel-sdk-node',
899-
'node-otel-custom-sampler',
900-
'node-otel-without-tracing',
901-
'ember-classic',
902-
'ember-embroider',
903-
'nextjs-app-dir',
904-
'nextjs-13',
905-
'nextjs-14',
906-
'nextjs-15',
907-
'nextjs-turbo',
908-
'nextjs-t3',
909-
'react-17',
910-
'react-19',
911-
'react-create-hash-router',
912-
'react-router-6-use-routes',
913-
'react-router-5',
914-
'react-router-6',
915-
'solid',
916-
'solidstart',
917-
'solidstart-spa',
918-
'svelte-5',
919-
'sveltekit',
920-
'sveltekit-2',
921-
'sveltekit-2-svelte-5',
922-
'sveltekit-2-twp',
923-
'tanstack-router',
924-
'generic-ts3.8',
925-
'node-fastify',
926-
'node-fastify-5',
927-
'node-hapi',
928-
'node-nestjs-basic',
929-
'node-nestjs-distributed-tracing',
930-
'nestjs-basic',
931-
'nestjs-distributed-tracing',
932-
'nestjs-with-submodules',
933-
'nestjs-with-submodules-decorator',
934-
'nestjs-basic-with-graphql',
935-
'nestjs-graphql',
936-
'node-exports-test-app',
937-
'node-koa',
938-
'node-connect',
939-
'nuxt-3',
940-
'nuxt-4',
941-
'vue-3',
942-
'webpack-4',
943-
'webpack-5'
944-
]
945-
build-command:
946-
- false
947-
label:
948-
- false
949-
# Add any variations of a test app here
950-
# You should provide an alternate build-command as well as a matching label
951-
include:
952-
- test-application: 'create-react-app'
953-
build-command: 'test:build-ts3.8'
954-
label: 'create-react-app (TS 3.8)'
955-
- test-application: 'react-router-6'
956-
build-command: 'test:build-ts3.8'
957-
label: 'react-router-6 (TS 3.8)'
958-
- test-application: 'create-next-app'
959-
build-command: 'test:build-13'
960-
label: 'create-next-app (next@13)'
961-
- test-application: 'nextjs-app-dir'
962-
build-command: 'test:build-13'
963-
label: 'nextjs-app-dir (next@13)'
964-
exclude:
965-
- is_dependabot: true
966-
test-application: 'cloudflare-astro'
967-
- is_dependabot: true
968-
test-application: 'cloudflare-workers'
969-
891+
matrix: ${{ fromJson(needs.job_e2e_prepare.outputs.matrix) }}
970892
steps:
971893
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
972894
uses: actions/checkout@v4
@@ -1060,13 +982,17 @@ jobs:
1060982
directory: dev-packages/e2e-tests
1061983
token: ${{ secrets.CODECOV_TOKEN }}
1062984

985+
# - We skip optional tests on release branches
1063986
job_optional_e2e_tests:
1064987
name: E2E ${{ matrix.label || matrix.test-application }} Test
1065988
# We only run E2E tests for non-fork PRs because the E2E tests require secrets to work and they can't be accessed from forks
1066989
# We need to add the `always()` check here because the previous step has this as well :(
1067990
# See: https://github.com/actions/runner/issues/2205
1068991
if:
1069-
always() && needs.job_e2e_prepare.result == 'success' &&
992+
always() &&
993+
needs.job_get_metadata.outputs.is_release != 'true' &&
994+
needs.job_e2e_prepare.result == 'success' &&
995+
needs.job_e2e_prepare.outputs.matrix-optional != '{"include":[]}' &&
1070996
(github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) &&
1071997
github.actor != 'dependabot[bot]'
1072998
needs: [job_get_metadata, job_build, job_e2e_prepare]
@@ -1083,58 +1009,7 @@ jobs:
10831009
E2E_TEST_SENTRY_PROJECT: 'sentry-javascript-e2e-tests'
10841010
strategy:
10851011
fail-fast: false
1086-
matrix:
1087-
test-application:
1088-
[
1089-
'cloudflare-astro',
1090-
'cloudflare-workers',
1091-
'react-send-to-sentry',
1092-
'node-express-send-to-sentry',
1093-
'debug-id-sourcemaps',
1094-
]
1095-
build-command:
1096-
- false
1097-
assert-command:
1098-
- false
1099-
label:
1100-
- false
1101-
include:
1102-
- test-application: 'create-remix-app'
1103-
assert-command: 'test:assert-sourcemaps'
1104-
label: 'create-remix-app (sourcemaps)'
1105-
- test-application: 'create-remix-app-legacy'
1106-
assert-command: 'test:assert-sourcemaps'
1107-
label: 'create-remix-app-legacy (sourcemaps)'
1108-
- test-application: 'nextjs-app-dir'
1109-
build-command: 'test:build-canary'
1110-
label: 'nextjs-app-dir (canary)'
1111-
- test-application: 'nextjs-app-dir'
1112-
build-command: 'test:build-latest'
1113-
label: 'nextjs-app-dir (latest)'
1114-
- test-application: 'nextjs-13'
1115-
build-command: 'test:build-canary'
1116-
label: 'nextjs-13 (canary)'
1117-
- test-application: 'nextjs-13'
1118-
build-command: 'test:build-latest'
1119-
label: 'nextjs-13 (latest)'
1120-
- test-application: 'nextjs-14'
1121-
build-command: 'test:build-canary'
1122-
label: 'nextjs-14 (canary)'
1123-
- test-application: 'nextjs-14'
1124-
build-command: 'test:build-latest'
1125-
label: 'nextjs-14 (latest)'
1126-
- test-application: 'nextjs-15'
1127-
build-command: 'test:build-canary'
1128-
label: 'nextjs-15 (canary)'
1129-
- test-application: 'nextjs-15'
1130-
build-command: 'test:build-latest'
1131-
label: 'nextjs-15 (latest)'
1132-
- test-application: 'nextjs-turbo'
1133-
build-command: 'test:build-canary'
1134-
label: 'nextjs-turbo (canary)'
1135-
- test-application: 'nextjs-turbo'
1136-
build-command: 'test:build-latest'
1137-
label: 'nextjs-turbo (latest)'
1012+
matrix: ${{ fromJson(needs.job_e2e_prepare.outputs.matrix-optional) }}
11381013

11391014
steps:
11401015
- name: Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
@@ -1234,7 +1109,7 @@ jobs:
12341109
(needs.job_get_metadata.outputs.is_release == 'true')
12351110
)
12361111
needs: [job_get_metadata, job_build, job_e2e_prepare]
1237-
runs-on: ubuntu-20.04
1112+
runs-on: ubuntu-22.04
12381113
timeout-minutes: 15
12391114
env:
12401115
E2E_TEST_AUTH_TOKEN: ${{ secrets.E2E_TEST_AUTH_TOKEN }}
@@ -1254,19 +1129,24 @@ jobs:
12541129
uses: actions/checkout@v4
12551130
with:
12561131
ref: ${{ env.HEAD_COMMIT }}
1132+
12571133
- uses: pnpm/action-setup@v4
12581134
with:
12591135
version: 9.4.0
1136+
12601137
- name: Set up Node
12611138
uses: actions/setup-node@v4
12621139
with:
12631140
node-version: 22
1141+
12641142
- name: Restore caches
12651143
uses: ./.github/actions/restore-cache
12661144
with:
12671145
dependency_cache_key: ${{ needs.job_build.outputs.dependency_cache_key }}
1146+
12681147
- name: Build Profiling Node
12691148
run: yarn lerna run build:lib --scope @sentry/profiling-node
1149+
12701150
- name: Extract Profiling Node Prebuilt Binaries
12711151
uses: actions/download-artifact@v4
12721152
with:
@@ -1305,6 +1185,18 @@ jobs:
13051185
env:
13061186
E2E_TEST_PUBLISH_SCRIPT_NODE_VERSION: ${{ steps.versions.outputs.node }}
13071187

1188+
- name: Setup xvfb and update ubuntu dependencies
1189+
run: |
1190+
sudo apt-get install xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps
1191+
sudo apt-get install build-essential clang libdbus-1-dev libgtk2.0-dev \
1192+
libnotify-dev libgconf2-dev \
1193+
libasound2-dev libcap-dev libcups2-dev libxtst-dev \
1194+
libxss1 libnss3-dev gcc-multilib g++-multilib
1195+
1196+
- name: Install dependencies
1197+
working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
1198+
run: yarn install --ignore-engines --frozen-lockfile
1199+
13081200
- name: Build E2E app
13091201
working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
13101202
timeout-minutes: 7
@@ -1313,7 +1205,7 @@ jobs:
13131205
- name: Run E2E test
13141206
working-directory: dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
13151207
timeout-minutes: 10
1316-
run: yarn test:assert
1208+
run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn test:assert
13171209

13181210
job_required_jobs_passed:
13191211
name: All required jobs passed or were skipped

.github/workflows/canary.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ env:
1414

1515
CACHED_BUILD_PATHS: |
1616
${{ github.workspace }}/packages/*/*.tgz
17-
${{ github.workspace }}/dev-packages/test-utils/build
1817
${{ github.workspace }}/node_modules
1918
${{ github.workspace }}/packages/*/node_modules
2019
${{ github.workspace }}/dev-packages/*/node_modules
21-
${{ github.workspace }}/packages/utils/build
20+
${{ github.workspace }}/dev-packages/*/build
21+
${{ github.workspace }}/packages/*/build
2222
2323
permissions:
2424
contents: read

.size-limit.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ module.exports = [
4040
path: 'packages/browser/build/npm/esm/index.js',
4141
import: createImport('init', 'browserTracingIntegration'),
4242
gzip: true,
43-
limit: '36.5 KB',
43+
limit: '37.5 KB',
4444
},
4545
{
4646
name: '@sentry/browser (incl. Tracing, Replay)',
@@ -79,7 +79,7 @@ module.exports = [
7979
path: 'packages/browser/build/npm/esm/index.js',
8080
import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'replayCanvasIntegration'),
8181
gzip: true,
82-
limit: '78.2 KB',
82+
limit: '79 KB',
8383
},
8484
{
8585
name: '@sentry/browser (incl. Tracing, Replay, Feedback)',
@@ -107,7 +107,7 @@ module.exports = [
107107
path: 'packages/browser/build/npm/esm/index.js',
108108
import: createImport('init', 'feedbackAsyncIntegration'),
109109
gzip: true,
110-
limit: '33 KB',
110+
limit: '34 KB',
111111
},
112112
// React SDK (ESM)
113113
{
@@ -124,7 +124,7 @@ module.exports = [
124124
import: createImport('init', 'ErrorBoundary', 'reactRouterV6BrowserTracingIntegration'),
125125
ignore: ['react/jsx-runtime'],
126126
gzip: true,
127-
limit: '39.5 KB',
127+
limit: '40.5 KB',
128128
},
129129
// Vue SDK (ESM)
130130
{
@@ -139,7 +139,7 @@ module.exports = [
139139
path: 'packages/vue/build/esm/index.js',
140140
import: createImport('init', 'browserTracingIntegration'),
141141
gzip: true,
142-
limit: '38 KB',
142+
limit: '39.5 KB',
143143
},
144144
// Svelte SDK (ESM)
145145
{
@@ -160,7 +160,7 @@ module.exports = [
160160
name: 'CDN Bundle (incl. Tracing)',
161161
path: createCDNPath('bundle.tracing.min.js'),
162162
gzip: true,
163-
limit: '38 KB',
163+
limit: '39 KB',
164164
},
165165
{
166166
name: 'CDN Bundle (incl. Tracing, Replay)',
@@ -187,7 +187,7 @@ module.exports = [
187187
path: createCDNPath('bundle.tracing.min.js'),
188188
gzip: false,
189189
brotli: false,
190-
limit: '113 KB',
190+
limit: '120 KB',
191191
},
192192
{
193193
name: 'CDN Bundle (incl. Tracing, Replay) - uncompressed',
@@ -219,7 +219,7 @@ module.exports = [
219219
import: createImport('init'),
220220
ignore: ['$app/stores'],
221221
gzip: true,
222-
limit: '37 KB',
222+
limit: '38 KB',
223223
},
224224
// Node SDK (ESM)
225225
{

0 commit comments

Comments
 (0)