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

Split integration tests #1202

Merged

Conversation

alexarchambault
Copy link
Contributor

@alexarchambault alexarchambault commented Jul 26, 2022

These often take more than an hour to run on the CI… Let's see if splitting them helps here.

This will probably make the workflow definition more verbose. Indeed, keeping the OS-based build matrix and naively splitting the native-tests job into generate-launchers (to generate the native images), and native-tests-1 and native-tests-2 (running each half the ITs with the launchers generated by the previous job) might be a problem: for example, it makes the Windows image generation block starting the ITs on Linux and macOS, even if there launchers are done being generated. And if the Windows launcher generation fails, no IT is run at all. That is, no ITs start running until launchers are successfully generated for all 3 OSes.

That means, we should replace the matrix-based native-tests by 12 non matrix-based jobs:

  • generate-linux-launcher
  • generate-macos-launcher
  • generate-windows-launcher
  • native-linux-tests-1
  • native-linux-tests-2
  • native-linux-tests-3
  • native-macos-tests-1
  • native-macos-tests-2
  • native-macos-tests-3
  • native-windows-tests-1
  • native-windows-tests-2
  • native-windows-tests-3

And jvm-tests by:

  • jvm-tests-1
  • jvm-tests-2
  • jvm-tests-3

And native-static-tests and native-mostly-static-tests by:

  • generate-static-launcher
  • generate-mostly-static-launcher
  • native-static-tests-1
  • native-static-tests-2
  • native-static-tests-3
  • native-mostly-static-tests-1
  • native-mostly-static-tests-2
  • native-mostly-static-tests-3

build.sc Outdated Show resolved Hide resolved
@alexarchambault alexarchambault force-pushed the split-integration-tests-ci branch 16 times, most recently from 861c100 to 10e15bd Compare July 29, 2022 09:15
@alexarchambault alexarchambault marked this pull request as ready for review July 29, 2022 09:18
@alexarchambault
Copy link
Contributor Author

Ideally, it'd be cool to generate that workflow definition from a more abstract definition…

Running into weird external script not found issues on CI
There's still no UI to drop the existing caches, so it seems these grow
and grow in size, reaching sizes like more than 6 GB sometimes, and
taking quite some time to be downloaded upon start, and uploaded at the
end of jobs (sometimes more than 5 minutes…).

I'm not sure the cache brings much in that case…
@alexarchambault alexarchambault merged commit 1f7142d into VirtusLab:main Jul 29, 2022
@alexarchambault alexarchambault deleted the split-integration-tests-ci branch July 29, 2022 13:32
@Gedochao Gedochao added the internal Internal or build-related changes label Aug 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal Internal or build-related changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants