@@ -801,7 +801,15 @@ jobs:
801
801
needs : [job_get_metadata, job_build, job_compile_bindings_profiling_node]
802
802
runs-on : ubuntu-20.04-large-js
803
803
timeout-minutes : 15
804
+ outputs :
805
+ matrix : ${{ steps.matrix.outputs.matrix }}
806
+ matrix-optional : ${{ steps.matrix-optional.outputs.matrix }}
804
807
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 }}
805
813
- name : Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
806
814
uses : actions/checkout@v4
807
815
with :
@@ -851,6 +859,18 @@ jobs:
851
859
path : ${{ github.workspace }}/packages/*/*.tgz
852
860
key : ${{ env.BUILD_CACHE_TARBALL_KEY }}
853
861
862
+ - name : Determine which E2E test applications should be run
863
+ id : matrix
864
+ if : github.event_name == 'pull_request'
865
+ run : yarn --silent test:build-matrix --base=${{ github.event.pull_request.base.sha }} >> $GITHUB_OUTPUT
866
+ working-directory : dev-packages/e2e-tests
867
+
868
+ - name : Determine which optional E2E test applications should be run
869
+ id : matrix-optional
870
+ if : github.event_name == 'pull_request'
871
+ run : yarn --silent test:build-matrix-optional --base=${{ github.event.pull_request.base.sha }} >> $GITHUB_OUTPUT
872
+ working-directory : dev-packages/e2e-tests
873
+
854
874
job_e2e_tests :
855
875
name : E2E ${{ matrix.label || matrix.test-application }} Test
856
876
# We need to add the `always()` check here because the previous step has this as well :(
@@ -870,100 +890,7 @@ jobs:
870
890
E2E_TEST_SENTRY_PROJECT : ' sentry-javascript-e2e-tests'
871
891
strategy :
872
892
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-8' ,
932
- ' nestjs-distributed-tracing' ,
933
- ' nestjs-with-submodules' ,
934
- ' nestjs-with-submodules-decorator' ,
935
- ' nestjs-basic-with-graphql' ,
936
- ' nestjs-graphql' ,
937
- ' node-exports-test-app' ,
938
- ' node-koa' ,
939
- ' node-connect' ,
940
- ' nuxt-3' ,
941
- ' nuxt-3-min' ,
942
- ' nuxt-4' ,
943
- ' vue-3' ,
944
- ' webpack-4' ,
945
- ' webpack-5'
946
- ]
947
- build-command :
948
- - false
949
- label :
950
- - false
951
- # Add any variations of a test app here
952
- # You should provide an alternate build-command as well as a matching label
953
- include :
954
- - test-application : ' create-react-app'
955
- build-command : ' test:build-ts3.8'
956
- label : ' create-react-app (TS 3.8)'
957
- - test-application : ' react-router-6'
958
- build-command : ' test:build-ts3.8'
959
- label : ' react-router-6 (TS 3.8)'
960
- - test-application : ' create-next-app'
961
- build-command : ' test:build-13'
962
- label : ' create-next-app (next@13)'
963
- - test-application : ' nextjs-app-dir'
964
- build-command : ' test:build-13'
965
- label : ' nextjs-app-dir (next@13)'
966
-
893
+ matrix : ${{ fromJson(needs.job_e2e_prepare.outputs.matrix) }}
967
894
steps :
968
895
- name : Check out base commit (${{ github.event.pull_request.base.sha }})
969
896
uses : actions/checkout@v4
@@ -999,47 +926,40 @@ jobs:
999
926
- name : Restore tarball cache
1000
927
uses : actions/cache/restore@v4
1001
928
id : restore-tarball-cache
1002
- if : steps.should-skip.outputs.SKIP != 'true'
1003
929
with :
1004
930
path : ${{ github.workspace }}/packages/*/*.tgz
1005
931
key : ${{ env.BUILD_CACHE_TARBALL_KEY }}
1006
932
1007
933
- name : Build tarballs if not cached
1008
- if : steps.restore-tarball-cache.outputs.cache-hit != 'true' && steps.should-skip.outputs.SKIP != 'true'
934
+ if : steps.restore-tarball-cache.outputs.cache-hit != 'true'
1009
935
run : yarn build:tarball
1010
936
1011
937
- name : Install Playwright
1012
- if : steps.should-skip.outputs.SKIP != 'true'
1013
938
uses : ./.github/actions/install-playwright
1014
939
with :
1015
940
browsers : chromium
1016
941
1017
942
- name : Get node version
1018
- if : steps.should-skip.outputs.SKIP != 'true'
1019
943
id : versions
1020
944
run : |
1021
945
echo "echo node=$(jq -r '.volta.node' dev-packages/e2e-tests/package.json)" >> $GITHUB_OUTPUT
1022
946
1023
947
- name : Validate Verdaccio
1024
- if : steps.should-skip.outputs.SKIP != 'true'
1025
948
run : yarn test:validate
1026
949
working-directory : dev-packages/e2e-tests
1027
950
1028
951
- name : Prepare Verdaccio
1029
- if : steps.should-skip.outputs.SKIP != 'true'
1030
952
run : yarn test:prepare
1031
953
working-directory : dev-packages/e2e-tests
1032
954
env :
1033
955
E2E_TEST_PUBLISH_SCRIPT_NODE_VERSION : ${{ steps.versions.outputs.node }}
1034
956
1035
957
- name : Build E2E app
1036
- if : steps.should-skip.outputs.SKIP != 'true'
1037
958
working-directory : dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
1038
959
timeout-minutes : 7
1039
960
run : pnpm ${{ matrix.build-command || 'test:build' }}
1040
961
1041
962
- name : Run E2E test
1042
- if : steps.should-skip.outputs.SKIP != 'true'
1043
963
working-directory : dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
1044
964
timeout-minutes : 10
1045
965
run : pnpm test:assert
@@ -1054,13 +974,13 @@ jobs:
1054
974
retention-days : 7
1055
975
1056
976
- name : Pre-process E2E Test Dumps
1057
- if : always() && steps.should-skip.outputs.SKIP != 'true'
977
+ if : always()
1058
978
run : |
1059
979
node ./scripts/normalize-e2e-test-dump-transaction-events.js
1060
980
1061
981
- name : Upload E2E Test Event Dumps
1062
982
uses : actions/upload-artifact@v4
1063
- if : always() && steps.should-skip.outputs.SKIP != 'true'
983
+ if : always()
1064
984
with :
1065
985
name : E2E Test Dump (${{ matrix.label || matrix.test-application }})
1066
986
path : dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}/event-dumps
@@ -1069,7 +989,7 @@ jobs:
1069
989
if-no-files-found : ignore
1070
990
1071
991
- name : Upload test results to Codecov
1072
- if : cancelled() == false && steps.should-skip.outputs.SKIP != 'true'
992
+ if : cancelled() == false
1073
993
continue-on-error : true
1074
994
uses : codecov/test-results-action@v1
1075
995
with :
@@ -1099,58 +1019,7 @@ jobs:
1099
1019
E2E_TEST_SENTRY_PROJECT : ' sentry-javascript-e2e-tests'
1100
1020
strategy :
1101
1021
fail-fast : false
1102
- matrix :
1103
- test-application :
1104
- [
1105
- ' cloudflare-astro' ,
1106
- ' cloudflare-workers' ,
1107
- ' react-send-to-sentry' ,
1108
- ' node-express-send-to-sentry' ,
1109
- ' debug-id-sourcemaps' ,
1110
- ]
1111
- build-command :
1112
- - false
1113
- assert-command :
1114
- - false
1115
- label :
1116
- - false
1117
- include :
1118
- - test-application : ' create-remix-app'
1119
- assert-command : ' test:assert-sourcemaps'
1120
- label : ' create-remix-app (sourcemaps)'
1121
- - test-application : ' create-remix-app-legacy'
1122
- assert-command : ' test:assert-sourcemaps'
1123
- label : ' create-remix-app-legacy (sourcemaps)'
1124
- - test-application : ' nextjs-app-dir'
1125
- build-command : ' test:build-canary'
1126
- label : ' nextjs-app-dir (canary)'
1127
- - test-application : ' nextjs-app-dir'
1128
- build-command : ' test:build-latest'
1129
- label : ' nextjs-app-dir (latest)'
1130
- - test-application : ' nextjs-13'
1131
- build-command : ' test:build-canary'
1132
- label : ' nextjs-13 (canary)'
1133
- - test-application : ' nextjs-13'
1134
- build-command : ' test:build-latest'
1135
- label : ' nextjs-13 (latest)'
1136
- - test-application : ' nextjs-14'
1137
- build-command : ' test:build-canary'
1138
- label : ' nextjs-14 (canary)'
1139
- - test-application : ' nextjs-14'
1140
- build-command : ' test:build-latest'
1141
- label : ' nextjs-14 (latest)'
1142
- - test-application : ' nextjs-15'
1143
- build-command : ' test:build-canary'
1144
- label : ' nextjs-15 (canary)'
1145
- - test-application : ' nextjs-15'
1146
- build-command : ' test:build-latest'
1147
- label : ' nextjs-15 (latest)'
1148
- - test-application : ' nextjs-turbo'
1149
- build-command : ' test:build-canary'
1150
- label : ' nextjs-turbo (canary)'
1151
- - test-application : ' nextjs-turbo'
1152
- build-command : ' test:build-latest'
1153
- label : ' nextjs-turbo (latest)'
1022
+ matrix : ${{ fromJson(needs.job_e2e_prepare.outputs.matrix-optional) }}
1154
1023
1155
1024
steps :
1156
1025
- name : Check out base commit (${{ github.event.pull_request.base.sha }})
@@ -1181,7 +1050,6 @@ jobs:
1181
1050
working-directory : dev-packages/e2e-tests
1182
1051
1183
1052
- name : Restore tarball cache
1184
- if : steps.should-skip.outputs.SKIP != 'true'
1185
1053
uses : actions/cache/restore@v4
1186
1054
id : restore-tarball-cache
1187
1055
with :
@@ -1193,49 +1061,43 @@ jobs:
1193
1061
run : yarn build:tarball
1194
1062
1195
1063
- name : Install Playwright
1196
- if : steps.should-skip.outputs.SKIP != 'true'
1197
1064
uses : ./.github/actions/install-playwright
1198
1065
with :
1199
1066
browsers : chromium
1200
1067
1201
1068
- name : Get node version
1202
1069
id : versions
1203
- if : steps.should-skip.outputs.SKIP != 'true'
1204
1070
run : |
1205
1071
echo "echo node=$(jq -r '.volta.node' dev-packages/e2e-tests/package.json)" >> $GITHUB_OUTPUT
1206
1072
1207
1073
- name : Validate Verdaccio
1208
- if : steps.should-skip.outputs.SKIP != 'true'
1209
1074
run : yarn test:validate
1210
1075
working-directory : dev-packages/e2e-tests
1211
1076
1212
1077
- name : Prepare Verdaccio
1213
- if : steps.should-skip.outputs.SKIP != 'true'
1214
1078
run : yarn test:prepare
1215
1079
working-directory : dev-packages/e2e-tests
1216
1080
env :
1217
1081
E2E_TEST_PUBLISH_SCRIPT_NODE_VERSION : ${{ steps.versions.outputs.node }}
1218
1082
1219
1083
- name : Build E2E app
1220
- if : steps.should-skip.outputs.SKIP != 'true'
1221
1084
working-directory : dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
1222
1085
timeout-minutes : 7
1223
1086
run : pnpm ${{ matrix.build-command || 'test:build' }}
1224
1087
1225
1088
- name : Run E2E test
1226
- if : steps.should-skip.outputs.SKIP != 'true'
1227
1089
working-directory : dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}
1228
1090
timeout-minutes : 10
1229
1091
run : pnpm ${{ matrix.assert-command || 'test:assert' }}
1230
1092
1231
1093
- name : Pre-process E2E Test Dumps
1232
- if : always() && steps.should-skip.outputs.SKIP != 'true'
1094
+ if : always()
1233
1095
run : |
1234
1096
node ./scripts/normalize-e2e-test-dump-transaction-events.js
1235
1097
1236
1098
- name : Upload E2E Test Event Dumps
1237
1099
uses : actions/upload-artifact@v4
1238
- if : always() && steps.should-skip.outputs.SKIP != 'true'
1100
+ if : always()
1239
1101
with :
1240
1102
name : E2E Test Dump (${{ matrix.label || matrix.test-application }})
1241
1103
path : dev-packages/e2e-tests/test-applications/${{ matrix.test-application }}/event-dumps
@@ -1245,7 +1107,7 @@ jobs:
1245
1107
1246
1108
- name : Deploy Astro to Cloudflare
1247
1109
uses : cloudflare/pages-action@v1
1248
- if : matrix.test-application == 'cloudflare-astro' && steps.should-skip.outputs.SKIP != 'true'
1110
+ if : matrix.test-application == 'cloudflare-astro'
1249
1111
with :
1250
1112
apiToken : ${{ secrets.CLOUDFLARE_API_TOKEN }}
1251
1113
accountId : ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
0 commit comments