-
Notifications
You must be signed in to change notification settings - Fork 60
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
CI: build once, run on multiple JDKs #454
Conversation
@lbulej You were asking for this, here are some numbers and few comments :-) If you want to review the changes, I would suggest looking at the current version of the file as the diff is confusing a little bit. I took the latest run on
This will not improve latency as the time required to build and run all the benchmarks varies somewhere between 8 minutes to 17 minutes (depending on JDK, OS, sea temperature in Baltic and whether it is Tuesday in February). But it cuts down the overall CPU-time cost by maybe 20%. I would say this is definitely improvement for PRs, I wonder if we still do not want to build on JDK11 and latest JDK on We can probably cut down the time a bit still for the As a bonus, we get an artifact from each build -- the GPL-versioned JAR and a JMH JAR. Currently I have set the retention period to the lowest possible value but if we want to keep them around, it can be increased (might make more sense for Since the artifacts are at the moment close to 1G, I am not sure how that would play with the free plan. |
Thanks a lot! I think it's good. Sometimes the builds get stuck and fail, so there is less opportunity for things like that. I'm aware that we introduce a dependency on the result of the build task, wherease if everything was parallel, the latency would be hidden. But we never had so many runners, so I think there was some sequential processing where the build added to the total latency in addition to having first built on the latest stable JDK and then on the other/LTS jdks. The bonus features are welcome, having a longer artifact retention on the Also, I think if we cron the EA build, it should subsume both building and running on latest release. |
0d1c462
to
d5e33d4
Compare
d6f91c8
to
437c159
Compare
I did some clean-up and to summarize the changes:
I would postpone this to a separate PR. |
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.
This looks great to me!
Trying how the build times would be changed if we would built Renaissance just once and then pass the pre-built JAR across multiple jobs running it.