-
Notifications
You must be signed in to change notification settings - Fork 126
Description
I think we all agree that GitHub actions are taking a long time.
One fact that contributes to this is that we're running into the GitHub runner concurrency limit when multiple actions are running simultaneously. @ranocha mitigated this problem by cancelling previous actions of the same PR when a new commit triggers another action, but it still occurs when multiple actions are triggered by different PRs at the same time.
We will surely add more tests in the future, and to prevent CI from running longer, we'd need to split them into even more parallel jobs than we already have, which will then block more GitHub runners at a time.
Our current limit of concurrent runners is 20. We could upgrade this to 40, 60 or even 180 by upgrading to a paid plan:
However, the prices are calculated on a per-user basis, so every new member of the organization would cost more.
I'm not sure what features come with being a member of the trixi-framework organization. IIRC, non-members can't request reviews from the members, but I didn't notice other features (remember that our repositories are open source, members are surely important for private repos). Maybe it would be an option to not include students in the organization.
Another option that would maybe make more sense are self-hosted runners. I can see a few advantages of these compared to GitHub's runners:
- Full control over hardware. We can also make runners with more than two cores, which will probably be necessary in the future when full MPI support is added to Trixi.
- We don't have to install Julia and all packages from scratch in every single run. We don't have to run jobs in docker containers like GitHub's runners do, so we can preinstall the Julia versions we're interested in and install all necessary packages. I don't know how much of the time spent in the jobs is actually due to the setup of Julia, has anyone ever timed this?
Disadvantages I see:
- Need to be hosted ourselves, duh!
- Need to be updated regularly (especially Julia and packages).
- Probably can't run macOS (and Windows?).
Anyway, this is supposed to be a discussion issue, so discuss!