-
Notifications
You must be signed in to change notification settings - Fork 27.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Report tests to Datadog from Job that executed them #73180
Report tests to Datadog from Job that executed them #73180
Conversation
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Failing test suitesCommit: 4b1b811
Expand output● app-dir - capture-console-error › should capture browser console error in render and dedupe if necessary
● app-dir - capture-console-error › should capture browser console error in render and dedupe when multi same errors logged
● app-dir - capture-console-error › should capture server replay string error from console error
● app-dir - capture-console-error › should capture server replay error instance from console error
Read more about building and testing Next.js in contributing.md.
Expand output● Dynamic IO Dev Errors › should show a red box error on the SSR render
● Dynamic IO Dev Errors › should show a red box error on client navigations
● Dynamic IO Dev Errors › should display error when component accessed data without suspense boundary
● Dynamic IO Dev Errors › should clear segment errors after correcting them
Read more about building and testing Next.js in contributing.md.
Expand output● app-dir - server source maps › thrown SSR errors
Read more about building and testing Next.js in contributing.md. |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
buildDuration | 21.3s | 19.7s | N/A |
buildDurationCached | 18.5s | 15.6s | N/A |
nodeModulesSize | 409 MB | 409 MB | N/A |
nextStartRea..uration (ms) | 542ms | 544ms | N/A |
Client Bundles (main, webpack)
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
1187-HASH.js gzip | 50.4 kB | 50.4 kB | N/A |
8276.HASH.js gzip | 169 B | 168 B | N/A |
8377-HASH.js gzip | 5.3 kB | 5.3 kB | N/A |
bccd1874-HASH.js gzip | 53 kB | 53 kB | N/A |
framework-HASH.js gzip | 57.5 kB | 57.5 kB | N/A |
main-app-HASH.js gzip | 233 B | 235 B | N/A |
main-HASH.js gzip | 33.8 kB | 33.7 kB | N/A |
webpack-HASH.js gzip | 1.71 kB | 1.71 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 39.4 kB | 39.4 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
_app-HASH.js gzip | 193 B | 193 B | ✓ |
_error-HASH.js gzip | 193 B | 193 B | ✓ |
amp-HASH.js gzip | 512 B | 510 B | N/A |
css-HASH.js gzip | 343 B | 342 B | N/A |
dynamic-HASH.js gzip | 1.84 kB | 1.84 kB | ✓ |
edge-ssr-HASH.js gzip | 265 B | 265 B | ✓ |
head-HASH.js gzip | 363 B | 362 B | N/A |
hooks-HASH.js gzip | 393 B | 392 B | N/A |
image-HASH.js gzip | 4.44 kB | 4.43 kB | N/A |
index-HASH.js gzip | 268 B | 268 B | ✓ |
link-HASH.js gzip | 2.35 kB | 2.34 kB | N/A |
routerDirect..HASH.js gzip | 328 B | 328 B | ✓ |
script-HASH.js gzip | 397 B | 397 B | ✓ |
withRouter-HASH.js gzip | 323 B | 326 B | N/A |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 3.59 kB | 3.59 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
_buildManifest.js gzip | 747 B | 745 B | N/A |
Overall change | 0 B | 0 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
index.html gzip | 524 B | 523 B | N/A |
link.html gzip | 539 B | 537 B | N/A |
withRouter.html gzip | 520 B | 520 B | ✓ |
Overall change | 520 B | 520 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
edge-ssr.js gzip | 128 kB | 128 kB | N/A |
page.js gzip | 203 kB | 203 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 669 B | 668 B | N/A |
middleware-r..fest.js gzip | 155 B | 156 B | N/A |
middleware.js gzip | 31 kB | 31 kB | N/A |
edge-runtime..pack.js gzip | 844 B | 844 B | ✓ |
Overall change | 844 B | 844 B | ✓ |
Next Runtimes
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
523-experime...dev.js gzip | 322 B | 322 B | ✓ |
523.runtime.dev.js gzip | 314 B | 314 B | ✓ |
app-page-exp...dev.js gzip | 322 kB | 322 kB | ✓ |
app-page-exp..prod.js gzip | 127 kB | 127 kB | ✓ |
app-page-tur..prod.js gzip | 140 kB | 140 kB | ✓ |
app-page-tur..prod.js gzip | 135 kB | 135 kB | ✓ |
app-page.run...dev.js gzip | 312 kB | 312 kB | ✓ |
app-page.run..prod.js gzip | 122 kB | 122 kB | ✓ |
app-route-ex...dev.js gzip | 37.1 kB | 37.1 kB | ✓ |
app-route-ex..prod.js gzip | 25.1 kB | 25.1 kB | ✓ |
app-route-tu..prod.js gzip | 25.1 kB | 25.1 kB | ✓ |
app-route-tu..prod.js gzip | 24.9 kB | 24.9 kB | ✓ |
app-route.ru...dev.js gzip | 38.7 kB | 38.7 kB | ✓ |
app-route.ru..prod.js gzip | 24.9 kB | 24.9 kB | ✓ |
pages-api-tu..prod.js gzip | 9.56 kB | 9.56 kB | ✓ |
pages-api.ru...dev.js gzip | 11.4 kB | 11.4 kB | ✓ |
pages-api.ru..prod.js gzip | 9.56 kB | 9.56 kB | ✓ |
pages-turbo...prod.js gzip | 21.3 kB | 21.3 kB | ✓ |
pages.runtim...dev.js gzip | 27 kB | 27 kB | ✓ |
pages.runtim..prod.js gzip | 21.3 kB | 21.3 kB | ✓ |
server.runti..prod.js gzip | 916 kB | 916 kB | N/A |
Overall change | 1.43 MB | 1.43 MB | ✓ |
build cache Overall increase ⚠️
vercel/next.js canary | vercel/next.js sebbie/11-25-report_tests_to_datadog_from_job_that_executed_them | Change | |
---|---|---|---|
0.pack gzip | 2.03 MB | 2.04 MB | |
index.pack gzip | 71.7 kB | 72 kB | |
Overall change | 2.11 MB | 2.12 MB |
Diff details
Diff for main-HASH.js
Diff too large to display
Diff for server.runtime.prod.js
Diff too large to display
a5f308d
to
dfcbb44
Compare
# Better than Datadog's default (e.g. https://github.com/vercel/next.js/commit/3dd3d19ba63c7ca790f3bf39e0e15152b597547c/checks) | ||
# Job id is not provided by GitHub. Using workflow url as a fallback. | ||
# We could derived the job id from GH API response but this is just more network slowness. | ||
DD_CI_JOB_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}/attempts/${{ github.run_attempt }} |
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.
Ignored for unknown reasons: DataDog/datadog-ci#1497
4b21ffe
to
991d29c
Compare
18c98bc
to
9e6d906
Compare
367992f
to
f11c84f
Compare
dfcbb44
to
64d5339
Compare
64d5339
to
a4686e5
Compare
7b303e2
to
e279a4a
Compare
Previously, each test run was associated with the Job that uploaded them. This makes it harder to understand under which configuration a specific test failed. Now we immediately upload test results from the respective job. This increases feedback time slightly by up to 1 minute (the slowest single upload time). I'd say this is an acceptable tradeoff given our current CI times. This reduces the time until a "Retry failed jobs" is avaiable since we no longer need to pass the test results between jobs.
a4686e5
to
4b1b811
Compare
Blocked by DataDog/datadog-ci#1497 |
Previously, each test run was associated with a separate Job that is responsible for uploading all reports.
This makes it harder to understand under which configuration a specific test failed.
Now we immediately upload test results from the respective job meaning a test run in Datadog can be associated with the actual CI job that ran it and therefore it's config (Turbopack vs Webpack, PPR vs no PPR, React 18 vs 19)
This increases feedback time slightly by up to 1 minute (the slowest single upload time).
I'd say this is an acceptable tradeoff given our current CI times.
This reduces the time until a "Retry failed jobs" is avaiable since we no longer need to pass the test results between jobs.
Before:
-- https://app.datadoghq.com/ci/test/AwAAAZNglKMHojDJ-AAAABhBWk5nbEtNSEFBQzZvbzJnTHZRV24wclgAAAAkMDE5MzYwOWUtMWM5Ni00MGVjLTk2ZTAtN2NkZTY5ZTVjY2Q2AAC6ug?colorBy=service¤tTab=overview&env=ci&eventStack=AwAAAZNglKMHojDJ-AAAABhBWk5nbEtNSEFBQzZvbzJnTHZRV24wclgAAAAkMDE5MzYwOWUtMWM5Ni00MGVjLTk2ZTAtN2NkZTY5ZTVjY2Q2AAC6ug&graphType=flamegraph&index=citest&spanViewType=metadata&testId=AwAAAZNglKMHojDJ-AAAABhBWk5nbEtNSEFBQzZvbzJnTHZRV24wclgAAAAkMDE5MzYwOWUtMWM5Ni00MGVjLTk2ZTAtN2NkZTY5ZTVjY2Q2AAC6ug
After:
--