9696 profiling_node:
9797 - 'packages/profiling-node/**'
9898 - 'dev-packages/e2e-tests/test-applications/node-profiling/**'
99+ any_code:
100+ - '!**/*.md'
99101
100102
101103 - name : Get PR labels
@@ -109,6 +111,8 @@ jobs:
109111 is_release : ${{ startsWith(github.ref, 'refs/heads/release/') }}
110112 changed_profiling_node : ${{ steps.changed.outputs.profiling_node == 'true' }}
111113 changed_ci : ${{ steps.changed.outputs.workflow == 'true' }}
114+ changed_any_code : ${{ steps.changed.outputs.any_code == 'true' }}
115+
112116 # When merging into master, or from master
113117 is_gitflow_sync : ${{ github.head_ref == 'master' || github.ref == 'refs/heads/master' }}
114118 has_gitflow_label :
@@ -123,6 +127,7 @@ jobs:
123127 runs-on : ubuntu-20.04
124128 timeout-minutes : 15
125129 if : |
130+ needs.job_get_metadata.outputs.changed_any_code == 'true' &&
126131 (needs.job_get_metadata.outputs.is_gitflow_sync == 'false' && needs.job_get_metadata.outputs.has_gitflow_label == 'false')
127132 steps :
128133 - name : Check out base commit (${{ github.event.pull_request.base.sha }})
@@ -274,24 +279,37 @@ jobs:
274279
275280 job_check_format :
276281 name : Check file formatting
277- needs : [job_get_metadata, job_build ]
282+ needs : [job_get_metadata]
278283 timeout-minutes : 10
279284 runs-on : ubuntu-20.04
280285 steps :
281286 - name : Check out current commit (${{ needs.job_get_metadata.outputs.commit_label }})
282287 uses : actions/checkout@v4
283288 with :
284289 ref : ${{ env.HEAD_COMMIT }}
290+
285291 - name : Set up Node
286292 uses : actions/setup-node@v4
287293 with :
288294 node-version-file : ' package.json'
295+
296+ # we use a hash of yarn.lock as our cache key, because if it hasn't changed, our dependencies haven't changed,
297+ # so no need to reinstall them
298+ - name : Compute dependency cache key
299+ id : compute_lockfile_hash
300+ run : echo "hash=${{ hashFiles('yarn.lock', '**/package.json') }}" >> "$GITHUB_OUTPUT"
301+
289302 - name : Check dependency cache
290- uses : actions/cache/restore@v4
303+ uses : actions/cache@v4
304+ id : cache_dependencies
291305 with :
292306 path : ${{ env.CACHED_DEPENDENCY_PATHS }}
293- key : ${{ needs.job_build.outputs.dependency_cache_key }}
294- fail-on-cache-miss : true
307+ key : ${{ steps.compute_lockfile_hash.outputs.hash }}
308+
309+ - name : Install dependencies
310+ if : steps.cache_dependencies.outputs.cache-hit != 'true'
311+ run : yarn install --ignore-engines --frozen-lockfile
312+
295313 - name : Check file formatting
296314 run : yarn lint:prettier && yarn lint:biome
297315
@@ -528,7 +546,7 @@ jobs:
528546 run : yarn lerna run test --scope @sentry/profiling-node
529547
530548 job_browser_playwright_tests :
531- name : Playwright ( ${{ matrix.bundle }}${{ matrix.shard && format(' {0}/{1}', matrix.shard, matrix.shards) || ''}}) Tests
549+ name : Playwright ${{ matrix.bundle }}${{ matrix.project && matrix.project != 'chromium' && format(' {0}', matrix.project) || ''}}${{ matrix. shard && format(' ( {0}/{1}) ', matrix.shard, matrix.shards) || ''}} Tests
532550 needs : [job_get_metadata, job_build]
533551 if : needs.job_build.outputs.changed_browser_integration == 'true' || github.event_name != 'pull_request'
534552 runs-on : ubuntu-20.04-large-js
@@ -548,31 +566,30 @@ jobs:
548566 project :
549567 - chromium
550568 include :
551- # Only check all projects for esm & full bundle
569+ # Only check all projects for full bundle
552570 # We also shard the tests as they take the longest
553571 - bundle : bundle_tracing_replay_feedback_min
554- project : ' '
555- shard : 1
556- shards : 2
572+ project : ' webkit'
557573 - bundle : bundle_tracing_replay_feedback_min
558- project : ' '
559- shard : 2
560- shards : 2
574+ project : ' firefox'
561575 - bundle : esm
562- project : ' '
576+ project : chromium
563577 shard : 1
564- shards : 3
578+ shards : 4
565579 - bundle : esm
580+ project : chromium
566581 shard : 2
567- shards : 3
582+ shards : 4
568583 - bundle : esm
569- project : ' '
584+ project : chromium
570585 shard : 3
571- shards : 3
586+ shards : 4
587+ - bundle : esm
588+ project : chromium
589+ shard : 4
590+ shards : 4
572591 exclude :
573- # Do not run the default chromium-only tests
574- - bundle : bundle_tracing_replay_feedback_min
575- project : ' chromium'
592+ # Do not run the un-sharded esm tests
576593 - bundle : esm
577594 project : ' chromium'
578595
@@ -592,12 +609,15 @@ jobs:
592609
593610 - name : Install Playwright
594611 uses : ./.github/actions/install-playwright
612+ with :
613+ browsers : ${{ matrix.project }}
595614
596615 - name : Run Playwright tests
597616 env :
598617 PW_BUNDLE : ${{ matrix.bundle }}
599618 working-directory : dev-packages/browser-integration-tests
600619 run : yarn test:ci${{ matrix.project && format(' --project={0}', matrix.project) || '' }}${{ matrix.shard && format(' --shard={0}/{1}', matrix.shard, matrix.shards) || '' }}
620+
601621 - name : Upload Playwright Traces
602622 uses : actions/upload-artifact@v3
603623 if : always()
@@ -606,7 +626,7 @@ jobs:
606626 path : dev-packages/browser-integration-tests/test-results
607627
608628 job_browser_loader_tests :
609- name : Playwright Loader ( ${{ matrix.bundle }}) Tests
629+ name : PW ${{ matrix.bundle }} Tests
610630 needs : [job_get_metadata, job_build]
611631 if : needs.job_build.outputs.changed_browser_integration == 'true' || github.event_name != 'pull_request'
612632 runs-on : ubuntu-20.04
@@ -639,6 +659,8 @@ jobs:
639659
640660 - name : Install Playwright
641661 uses : ./.github/actions/install-playwright
662+ with :
663+ browsers : chromium
642664
643665 - name : Run Playwright Loader tests
644666 env :
@@ -750,8 +772,12 @@ jobs:
750772 uses : ./.github/actions/restore-cache
751773 env :
752774 DEPENDENCY_CACHE_KEY : ${{ needs.job_build.outputs.dependency_cache_key }}
775+
753776 - name : Install Playwright
754777 uses : ./.github/actions/install-playwright
778+ with :
779+ browsers : chromium
780+
755781 - name : Run integration tests
756782 env :
757783 NODE_VERSION : ${{ matrix.node }}
@@ -810,10 +836,10 @@ jobs:
810836 pattern : profiling-node-binaries-${{ github.sha }}-*
811837 path : ${{ github.workspace }}/packages/profiling-node/lib/
812838 merge-multiple : true
839+ # End rebuild profiling
813840
814- - name : Build Profiling tarball
841+ - name : Build tarballs
815842 run : yarn build:tarball
816- # End rebuild profiling
817843
818844 - name : Stores tarballs in cache
819845 uses : actions/cache/save@v4
@@ -859,6 +885,7 @@ jobs:
859885 ' create-remix-app-express' ,
860886 ' create-remix-app-express-legacy' ,
861887 ' create-remix-app-express-vite-dev' ,
888+ ' default-browser' ,
862889 ' node-express-esm-loader' ,
863890 ' node-express-esm-preload' ,
864891 ' node-express-esm-without-loader' ,
@@ -950,9 +977,12 @@ jobs:
950977 with :
951978 path : ${{ github.workspace }}/packages/*/*.tgz
952979 key : ${{ env.BUILD_CACHE_TARBALL_KEY }}
980+ fail-on-cache-miss : true
953981
954982 - name : Install Playwright
955983 uses : ./.github/actions/install-playwright
984+ with :
985+ browsers : chromium
956986
957987 - name : Get node version
958988 id : versions
@@ -1047,9 +1077,12 @@ jobs:
10471077 with :
10481078 path : ${{ github.workspace }}/packages/*/*.tgz
10491079 key : ${{ env.BUILD_CACHE_TARBALL_KEY }}
1080+ fail-on-cache-miss : true
10501081
10511082 - name : Install Playwright
10521083 uses : ./.github/actions/install-playwright
1084+ with :
1085+ browsers : chromium
10531086
10541087 - name : Get node version
10551088 id : versions
@@ -1150,6 +1183,8 @@ jobs:
11501183
11511184 - name : Install Playwright
11521185 uses : ./.github/actions/install-playwright
1186+ with :
1187+ browsers : chromium
11531188
11541189 - name : Get node version
11551190 id : versions
@@ -1413,6 +1448,7 @@ jobs:
14131448 path : ${{ env.CACHED_DEPENDENCY_PATHS }}
14141449 key : ${{ needs.job_build.outputs.dependency_cache_key }}
14151450 enableCrossOsArchive : true
1451+ fail-on-cache-miss : true
14161452
14171453 - name : Restore build cache
14181454 uses : actions/cache/restore@v4
@@ -1421,6 +1457,7 @@ jobs:
14211457 path : ${{ env.CACHED_BUILD_PATHS }}
14221458 key : ${{ needs.job_build.outputs.dependency_cache_key }}
14231459 enableCrossOsArchive : true
1460+ fail-on-cache-miss : true
14241461
14251462 - name : Configure safe directory
14261463 run : |
0 commit comments