-
Notifications
You must be signed in to change notification settings - Fork 282
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
Speed up CI test workflows in GHA #2798
Comments
@davidlago @peternied @scrawfor99 @cwperks FYI. We are already working on this. I filed this to document and discuss our findings and suggestions for improvement. |
We did some benchmarks and tests and would like to share our first results: Gradle task build profileWe profiled the gradle task that is called from the CI:
What is remarkable is that the profile contains three major parts which take quite a while:
I would have only expected General test resource consumptionWe profiled also the individual tests. The general problem is that there are many tests which spin up embedded clusters and thus require an enormous amount of time. A short term solution would be to parallelize the tests in maybe 4 CI jobs. This should be achievable with additional Gradle tasks. We are working on a prototype for this. The mid to long term solution would be re-doing the tests with a stronger focus on performance. This work has been already started in the integration-test project. With additional light-weight unit tests, it would be possible to completely replace the resource hungly old tests and thus speed up the CI. Windows testsAt the moment, the Java based integration tests are executed both in a Linux and Windows environment. The windows tests take about twice the time because the windows test runners are not as strong as the Linux test runners. I would recommend to review the test strategy here: Does it for Java-based tests make sense to run the complete tests suites under both operating systems? I think, for the windows testing, it would be sufficient to select a relatively small number of tests which either test a large section through the stack or are likely to hit on OS specific issues. |
We have caught several platform specific issues by running the whole suite, we should not alter this strategy. When we official support mac releases we will add its CI tests as well. |
What is the mechanism that you are using to subdivide the test runs? Are there multiple options, I'd be curious how flexible they are. |
Just out of curiosity: Do you have an example for such a platform specific bug? I would like to know about the character of these bugs to be able to judge this better. |
The CI job
build
can take more than one hour. As low turnaround times are desirable for speedy development, this should be reduced.https://github.com/opensearch-project/security/actions/runs/4983823949/jobs/8921355684
The text was updated successfully, but these errors were encountered: