Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(CI): Convert daily turbopack (areweturboyet) integration tes…
…ts into reusable workflows (#76251) This builds on top of work that @timneutkens did in the `wbinnssmith/try-ci-test` branch to rebuild the integration test CI on top of `build_reusable.yml` and work around issues with the `next-integration-stat`, but takes it a few steps further: - As much of the integration test logic as possible is moved into a single re-usable workflow so that we won't need to duplicate logic between 6 workflows going forward (turbopack dev, turbopack build, turbopack examples, rspack dev, rspack build, rspack examples). Right now this just ports turbopack dev and build. - Cleaned up a ton of legacy dead/broken code in `next-integration-stat`. We might want to revive the comment-on-PR functionality, so I didn't completely remove it, just the very obviously broken parts (e.g. references to a >2-year-old stale branch of the turborepo repository). --- Manually triggered the workflows: Dev tests: https://github.com/vercel/next.js/actions/runs/13466611352 Prod tests: https://github.com/vercel/next.js/actions/runs/13466609857 Tested by patching the `test/build-turbopack-*-tests-manifest.js` scripts like so: ```diff diff --git a/test/build-turbopack-dev-tests-manifest.js b/test/build-turbopack-dev-tests-manifest.js index bc1928cf2d..e6546e0018 100644 --- a/test/build-turbopack-dev-tests-manifest.js +++ b/test/build-turbopack-dev-tests-manifest.js @@ -91,7 +91,11 @@ async function fetchLatestTestArtifact() { const res = JSON.parse(stdout) for (const artifact of res.artifacts) { - if (artifact.expired || artifact.workflow_run.head_branch !== 'canary') { + if ( + artifact.expired || + artifact.workflow_run.head_branch !== + 'bgw/reusable-integration-test-workflow' + ) { continue } ``` And then diffing the generated json manifests: https://gist.github.com/bgw/08778b5f63861811fbe88e3f466a8679 Note that some differences are expected: These jobs have been broken for at least 2-3 weeks.
- Loading branch information
13fcfab
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Stats from current release
Default Build (Increase detected⚠️ )
General
Client Bundles (main, webpack) Overall increase⚠️
Legacy Client Bundles (polyfills)
Client Pages
Client Build Manifests
Rendered Page Sizes
Edge SSR bundle Size Overall increase⚠️
Middleware size Overall increase⚠️
Next Runtimes Overall increase⚠️
build cache Overall increase⚠️
Diff details
Diff for page.js
Diff too large to display
Diff for middleware-b..-manifest.js
Diff for middleware.js
Diff too large to display
Diff for edge-ssr.js
Diff for amp-HASH.js
Diff for css-HASH.js
Diff for dynamic-HASH.js
Diff for hooks-HASH.js
Diff for image-HASH.js
Diff for index-HASH.js
Diff for link-HASH.js
Diff for routerDirect-HASH.js
Diff for script-HASH.js
Diff for withRouter-HASH.js
Diff for 1187-HASH.js
Diff for 8377-HASH.js
Diff too large to display
Diff for bccd1874-HASH.js
Diff too large to display
Diff for framework-HASH.js
Diff too large to display
Diff for main-HASH.js
Diff too large to display
Diff for main-app-HASH.js
Diff for 523-experime..ntime.dev.js
Diff for 523.runtime.dev.js
Diff for app-page-exp..ntime.dev.js
Diff for app-page-exp..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page.runtime.dev.js
Diff for app-page.runtime.prod.js
Diff too large to display
Diff for app-route-ex..ntime.dev.js
Diff too large to display
Diff for app-route-ex..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route.runtime.dev.js
Diff too large to display
Diff for app-route.ru..time.prod.js
Diff too large to display
Diff for dist_client_..ntime.dev.js
Diff for dist_client_..ntime.dev.js
Diff for pages-api-tu..time.prod.js
Diff too large to display
Diff for pages-api.runtime.dev.js
Diff too large to display
Diff for pages-api.ru..time.prod.js
Diff too large to display
Diff for pages-turbo...time.prod.js
Diff too large to display
Diff for pages.runtime.dev.js
Diff too large to display
Diff for pages.runtime.prod.js
Diff too large to display
Diff for server.runtime.prod.js
13fcfab
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Stats from current release
Default Build (Increase detected⚠️ )
General
Client Bundles (main, webpack) Overall increase⚠️
Legacy Client Bundles (polyfills)
Client Pages
Client Build Manifests
Rendered Page Sizes
Edge SSR bundle Size Overall increase⚠️
Middleware size Overall increase⚠️
Next Runtimes Overall increase⚠️
build cache Overall increase⚠️
Diff details
Diff for page.js
Diff too large to display
Diff for middleware-b..-manifest.js
Diff for middleware.js
Diff too large to display
Diff for edge-ssr.js
Diff for amp-HASH.js
Diff for css-HASH.js
Diff for dynamic-HASH.js
Diff for hooks-HASH.js
Diff for image-HASH.js
Diff for index-HASH.js
Diff for link-HASH.js
Diff for routerDirect-HASH.js
Diff for script-HASH.js
Diff for withRouter-HASH.js
Diff for 1187-HASH.js
Diff for 8377-HASH.js
Diff too large to display
Diff for bccd1874-HASH.js
Diff too large to display
Diff for framework-HASH.js
Diff too large to display
Diff for main-HASH.js
Diff too large to display
Diff for main-app-HASH.js
Diff for 523-experime..ntime.dev.js
Diff for 523.runtime.dev.js
Diff for app-page-exp..ntime.dev.js
Diff for app-page-exp..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page-tur..time.prod.js
Diff too large to display
Diff for app-page.runtime.dev.js
Diff for app-page.runtime.prod.js
Diff too large to display
Diff for app-route-ex..ntime.dev.js
Diff too large to display
Diff for app-route-ex..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route-tu..time.prod.js
Diff too large to display
Diff for app-route.runtime.dev.js
Diff too large to display
Diff for app-route.ru..time.prod.js
Diff too large to display
Diff for dist_client_..ntime.dev.js
Diff for dist_client_..ntime.dev.js
Diff for pages-api-tu..time.prod.js
Diff too large to display
Diff for pages-api.runtime.dev.js
Diff too large to display
Diff for pages-api.ru..time.prod.js
Diff too large to display
Diff for pages-turbo...time.prod.js
Diff too large to display
Diff for pages.runtime.dev.js
Diff too large to display
Diff for pages.runtime.prod.js
Diff too large to display
Diff for server.runtime.prod.js