@@ -152,15 +152,15 @@ jobs:
152152 changed_node :
153153 ${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
154154 ' @sentry/node' ) }}
155- changed_node_overhead_action :
156- ${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
157- ' @sentry-internal/node-overhead-gh-action' ) }}
158155 changed_deno :
159156 ${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
160157 ' @sentry/deno' ) }}
161158 changed_bun :
162159 ${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
163160 ' @sentry/bun' ) }}
161+ changed_bun_integration :
162+ ${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
163+ ' @sentry-internal/bun-integration-tests' ) }}
164164 changed_browser_integration :
165165 ${{ needs.job_get_metadata.outputs.changed_ci == 'true' || contains(steps.checkForAffected.outputs.affected,
166166 ' @sentry-internal/browser-integration-tests' ) }}
@@ -208,37 +208,6 @@ jobs:
208208 # Only run comparison against develop if this is a PR
209209 comparison_branch : ${{ (github.event_name == 'pull_request' && github.base_ref) || ''}}
210210
211- job_node_overhead_check :
212- name : Node Overhead Check
213- needs : [job_get_metadata, job_build]
214- timeout-minutes : 15
215- runs-on : ubuntu-24.04
216- if :
217- (needs.job_build.outputs.changed_node == 'true' && github.event_name == 'pull_request') ||
218- (needs.job_build.outputs.changed_node_overhead_action == 'true' && github.event_name == 'pull_request') ||
219- needs.job_get_metadata.outputs.is_base_branch == 'true' || needs.job_get_metadata.outputs.is_release == 'true'
220- steps :
221- - name : Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
222- uses : actions/checkout@v6
223- with :
224- ref : ${{ env.HEAD_COMMIT }}
225- - name : Set up Node
226- uses : actions/setup-node@v6
227- with :
228- node-version-file : ' package.json'
229- - name : Restore caches
230- uses : ./.github/actions/restore-cache
231- with :
232- dependency_cache_key : ${{ needs.job_build.outputs.dependency_cache_key }}
233- - name : Check node overhead
234- uses : ./dev-packages/node-overhead-gh-action
235- env :
236- DEBUG : ' 1'
237- with :
238- github_token : ${{ secrets.GITHUB_TOKEN }}
239- # Only run comparison against develop if this is a PR
240- comparison_branch : ${{ (github.event_name == 'pull_request' && github.base_ref) || ''}}
241-
242211 job_lint :
243212 name : Lint
244213 # Even though the linter only checks source code, not built code, it needs the built code in order check that all
@@ -605,6 +574,7 @@ jobs:
605574 with :
606575 token : ${{ secrets.GITHUB_TOKEN }}
607576 directory : dev-packages/browser-integration-tests
577+ enable-coverage : false
608578 name :
609579 browser-playwright-${{ matrix.bundle }}-${{ matrix.project }}${{ matrix.shard && format('-{0}',
610580 matrix.shard) || '' }}
@@ -669,6 +639,7 @@ jobs:
669639 with :
670640 token : ${{ secrets.GITHUB_TOKEN }}
671641 directory : dev-packages/browser-integration-tests
642+ enable-coverage : false
672643 name : browser-loader-${{ matrix.bundle }}
673644
674645 job_check_for_faulty_dts :
@@ -737,15 +708,6 @@ jobs:
737708 working-directory : dev-packages/node-integration-tests
738709 run : yarn test
739710
740- - name : Parse and Upload Coverage
741- if : cancelled() == false
742- continue-on-error : true
743- uses : getsentry/codecov-action@main
744- with :
745- token : ${{ secrets.GITHUB_TOKEN }}
746- directory : dev-packages/node-integration-tests
747- name : node-integration-${{ matrix.node }}${{ matrix.typescript && format('-ts{0}', matrix.typescript) || '' }}
748-
749711 job_node_core_integration_tests :
750712 name :
751713 Node (${{ matrix.node }})${{ (matrix.typescript && format(' (TS {0})', matrix.typescript)) || '' }} Node-Core
@@ -787,16 +749,6 @@ jobs:
787749 working-directory : dev-packages/node-core-integration-tests
788750 run : yarn test
789751
790- - name : Parse and Upload Coverage
791- if : cancelled() == false
792- continue-on-error : true
793- uses : getsentry/codecov-action@main
794- with :
795- token : ${{ secrets.GITHUB_TOKEN }}
796- directory : dev-packages/node-core-integration-tests
797- name :
798- node-core-integration-${{ matrix.node }}${{ matrix.typescript && format('-ts{0}', matrix.typescript) || ''}}
799-
800752 job_cloudflare_integration_tests :
801753 name : Cloudflare Integration Tests
802754 needs : [job_get_metadata, job_build]
@@ -820,6 +772,32 @@ jobs:
820772 working-directory : dev-packages/cloudflare-integration-tests
821773 run : yarn test
822774
775+ job_bun_integration_tests :
776+ name : Bun Integration Tests
777+ needs : [job_get_metadata, job_build]
778+ if : needs.job_build.outputs.changed_bun_integration == 'true' || github.event_name != 'pull_request'
779+ runs-on : ubuntu-24.04
780+ timeout-minutes : 15
781+ steps :
782+ - name : Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
783+ uses : actions/checkout@v6
784+ with :
785+ ref : ${{ env.HEAD_COMMIT }}
786+ - name : Set up Node
787+ uses : actions/setup-node@v6
788+ with :
789+ node-version-file : ' package.json'
790+ - name : Set up Bun
791+ uses : oven-sh/setup-bun@v2
792+ - name : Restore caches
793+ uses : ./.github/actions/restore-cache
794+ with :
795+ dependency_cache_key : ${{ needs.job_build.outputs.dependency_cache_key }}
796+
797+ - name : Run integration tests
798+ working-directory : dev-packages/bun-integration-tests
799+ run : yarn test
800+
823801 job_remix_integration_tests :
824802 name : Remix (Node ${{ matrix.node }}) Tests
825803 needs : [job_get_metadata, job_build]
@@ -856,15 +834,6 @@ jobs:
856834 cd packages/remix
857835 yarn test:integration:ci
858836
859- - name : Parse and Upload Coverage
860- if : cancelled() == false
861- continue-on-error : true
862- uses : getsentry/codecov-action@main
863- with :
864- directory : packages/remix
865- token : ${{ secrets.GITHUB_TOKEN }}
866- name : ${{ matrix.node }}
867-
868837 job_e2e_prepare :
869838 name : Prepare E2E tests
870839 # We want to run this if:
@@ -970,7 +939,7 @@ jobs:
970939 use-installer : true
971940 token : ${{ secrets.GITHUB_TOKEN }}
972941 - name : Set up Deno
973- if : matrix.test-application == 'deno'
942+ if : matrix.test-application == 'deno' || matrix.test-application == 'deno-streamed'
974943 uses : denoland/setup-deno@v2.0.3
975944 with :
976945 deno-version : v2.1.5
@@ -990,20 +959,13 @@ jobs:
990959 if : steps.restore-tarball-cache.outputs.cache-hit != 'true'
991960 run : yarn build:tarball
992961
993- - name : Get node version
994- id : versions
995- run : |
996- echo "echo node=$(jq -r '.volta.node' dev-packages/e2e-tests/package.json)" >> $GITHUB_OUTPUT
997-
998962 - name : Validate Verdaccio
999963 run : yarn test:validate
1000964 working-directory : dev-packages/e2e-tests
1001965
1002966 - name : Prepare Verdaccio
1003967 run : yarn test:prepare
1004968 working-directory : dev-packages/e2e-tests
1005- env :
1006- E2E_TEST_PUBLISH_SCRIPT_NODE_VERSION : ${{ steps.versions.outputs.node }}
1007969
1008970 - name : Copy to temp
1009971 run : yarn ci:copy-to-temp ./test-applications/${{ matrix.test-application }} ${{ runner.temp }}/test-application
@@ -1053,15 +1015,6 @@ jobs:
10531015 retention-days : 7
10541016 if-no-files-found : ignore
10551017
1056- - name : Parse and Upload Coverage
1057- if : cancelled() == false
1058- continue-on-error : true
1059- uses : getsentry/codecov-action@main
1060- with :
1061- directory : dev-packages/e2e-tests
1062- token : ${{ secrets.GITHUB_TOKEN }}
1063- name : e2e-${{ matrix.test-application }}
1064-
10651018 # - We skip optional tests on release branches
10661019 job_optional_e2e_tests :
10671020 name : E2E ${{ matrix.label || matrix.test-application }} Test (optional)
@@ -1116,20 +1069,13 @@ jobs:
11161069 if : steps.restore-tarball-cache.outputs.cache-hit != 'true'
11171070 run : yarn build:tarball
11181071
1119- - name : Get node version
1120- id : versions
1121- run : |
1122- echo "echo node=$(jq -r '.volta.node' dev-packages/e2e-tests/package.json)" >> $GITHUB_OUTPUT
1123-
11241072 - name : Validate Verdaccio
11251073 run : yarn test:validate
11261074 working-directory : dev-packages/e2e-tests
11271075
11281076 - name : Prepare Verdaccio
11291077 run : yarn test:prepare
11301078 working-directory : dev-packages/e2e-tests
1131- env :
1132- E2E_TEST_PUBLISH_SCRIPT_NODE_VERSION : ${{ steps.versions.outputs.node }}
11331079
11341080 - name : Copy to temp
11351081 run : yarn ci:copy-to-temp ./test-applications/${{ matrix.test-application }} ${{ runner.temp }}/test-application
@@ -1178,6 +1124,7 @@ jobs:
11781124 job_node_integration_tests,
11791125 job_node_core_integration_tests,
11801126 job_cloudflare_integration_tests,
1127+ job_bun_integration_tests,
11811128 job_browser_playwright_tests,
11821129 job_browser_loader_tests,
11831130 job_remix_integration_tests,
@@ -1192,7 +1139,28 @@ jobs:
11921139 # Always run this, even if a dependent job failed
11931140 if : always()
11941141 runs-on : ubuntu-24.04
1142+ permissions :
1143+ issues : write
1144+ checks : read
11951145 steps :
1146+ - name : Check out current commit
1147+ if : github.ref == 'refs/heads/develop' && contains(needs.*.result, 'failure')
1148+ uses : actions/checkout@v6
1149+ with :
1150+ sparse-checkout : |
1151+ .github
1152+ scripts
1153+
1154+ - name : Create issues for failed jobs
1155+ if : github.ref == 'refs/heads/develop' && contains(needs.*.result, 'failure')
1156+ uses : actions/github-script@v7
1157+ with :
1158+ script : |
1159+ const { default: run } = await import(
1160+ `${process.env.GITHUB_WORKSPACE}/scripts/report-ci-failures.mjs`
1161+ );
1162+ await run({ github, context, core });
1163+
11961164 - name : Check for failures
11971165 if : cancelled() || contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
11981166 run : |
0 commit comments