Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
An attempt for something that we discussed with @lbulej off-line.
Currently, CI using GitHub actions builds everything in one workflow. Unfortunately, unlike GitLab or Travis, one cannot restart individual jobs inside a workflow but only the whole workflow. That means that a single failing job (e.g. because SBT cannot fetch dependencies because of temporary network outage or similar) fails the whole workflow and restarting it is a very costly operation.
Therefore, this PR splits the workflow into the following parts:
Main
for building on latest JDK on Linux, Windows and MacOS. This also checks for encoding and coding style issues. This is meant as always-must-be-in-the-green workflow.Plugins
for building and testing plugins (JDK 8 only)Windows (legacy)
is a matrix build for all out-of-the-box supported JDKs on Windows excluding JDK 17.MacOS (legacy)
is just like the above but on Mac.Linux
is a matrix build for JDKs 8 to 16, including also OpenJ9 (8, 11, 16).This should simplify restarting the jobs and might also simplify identifying the failing job a bit more quickly.
@lbulej Does this initial split somehow seem reasonable to you? I have not yet tackled the idea of sharing builds between individual jobs but it at least solves the issue of restarting smaller units of jobs.