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

GHA: split into more workflows #325

Merged
merged 1 commit into from
Nov 12, 2021
Merged

GHA: split into more workflows #325

merged 1 commit into from
Nov 12, 2021

Conversation

vhotspur
Copy link
Member

@vhotspur vhotspur commented Nov 8, 2021

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.

@vhotspur vhotspur marked this pull request as draft November 8, 2021 10:02
@lbulej
Copy link
Member

lbulej commented Nov 9, 2021

@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.

I'm fine with that, let's see how that works. The ability to share an artifact that has been built once might enable a different workflow architecture, but first let's see how this split works.

@vhotspur vhotspur marked this pull request as ready for review November 9, 2021 10:13
@vhotspur vhotspur changed the title GHA: split into more workflows [WiP] GHA: split into more workflows Nov 9, 2021
@vhotspur vhotspur requested a review from lbulej November 9, 2021 10:14
Copy link
Member

@lbulej lbulej left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I would like to see this merged now.

As to where to go next, we have discussed this a bit during the telco. We should primarily test LTS versions, because those are what people care about (the moment an LTS version is released, the intermediate versions between two LTS version become relatively less important). Also, we would probably not add workarounds for compatibility issues in those versions to Renaissance if a later LTS version worked fine.

Instead of intermediate non-LTS versions, we should make sure to test with latest non-LTS version discover compatibility issues early. There are (not only) early-access Docker images with various JVM versions that we might use in the CI.

https://hub.docker.com/_/openjdk?tab=tags

@vhotspur vhotspur merged commit 0828cb7 into master Nov 12, 2021
@vhotspur vhotspur mentioned this pull request Nov 12, 2021
@farquet
Copy link
Collaborator

farquet commented Nov 16, 2021

FYI, the icon showing the status of the latest build on https://renaissance.dev/ seems to be broken since this PR got merged.
Screenshot 2021-11-16 at 11 41 33

@lbulej
Copy link
Member

lbulej commented Nov 16, 2021

FYI, the icon showing the status of the latest build on https://renaissance.dev/ seems to be broken since this PR got merged.

Fixed in renaissance-benchmarks/renaissance-benchmarks.github.io@e65c60f

@lbulej lbulej deleted the topic/gha-split branch December 14, 2021 09:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants