Skip to content
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

Re-enable continuous benchmarking #25048

Open
3 of 4 tasks
adriencaccia opened this issue Jan 4, 2024 · 1 comment
Open
3 of 4 tasks

Re-enable continuous benchmarking #25048

adriencaccia opened this issue Jan 4, 2024 · 1 comment

Comments

@adriencaccia
Copy link

Describe the feature

Benchmarks have been added in #24846. It came with CodSpeed and a CI job that ran on every pull request to track performance.

However, it was disabled in a39d311. The reason is that there were some performance regressions falsely reported in unrelated PRs due to the flakiness of some benchmarks.
The flaky benchmarks are those defined in https://github.com/nuxt/nuxt/blob/main/packages/kit/test/load-nuxt-config.bench.ts. The flakiness comes from the fact that they rely on file system access, which at the moment is not reliably supported in CodSpeed. You can see an example of the flakiness here: https://codspeed.io/nuxt/nuxt/benchmarks/packages/kit/test/load-nuxt-config.bench.ts::loadNuxtConfig::basic%20test%20fixture%20(types)

To re-enable the CI job, one of the following options could be done:

  • Remove those benchmarks entirely
  • Change those benchmarks, and the underlying tested functions, to not rely on File System access

I think the second option would be best, but it will require some changes to the https://github.com/nuxt/nuxt/blob/main/packages/kit/src/loader/config.ts file.

In the future, we plan on adding better support on CodSpeed for flaky benchmarks due to FS access, but that may take some time before it's available.

Additional information

  • Would you be willing to help implement this feature?
  • Could this feature be implemented as a module?

Final checks

@adriencaccia
Copy link
Author

adriencaccia commented Mar 19, 2024

Hey @danielroe,

We just released a feature to ignore a benchmark on CodSpeed. An ignored benchmark is removed is still run, but its measure is removed from the performance report.

This feature should allow you to re-enable CodSpeed, ignore the flaky packages/kit/test/load-nuxt-config.bench.ts::loadNuxtConfig::basic test fixture (types) benchmark and start benefitting from CodSpeed again.
We will also be able to collect more data on the specific flaky benchmarks, which will help us find the source of the problem and fix it 🤞

Let me know if you have any questions 😉

@danielroe danielroe removed the 3.x label Jun 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants