I just finished putting together a concrete proposal, which I posted on the original thread.
Our current CI resources are listed here. CI is run on every opened merge request, every merge to master
, and nightly in a few more configurations. GHC has many configurations and target platforms; consequently, each validation pipeline consists of roughly a dozen GHC builds. Each of these builds takes between one and three hours (depending upon the configuration and platform).
The minimal viable runner configuration is probably 4 cores, 16 GB RAM and 200 GB available disk space. Most of our runners are considerably larger than this and run multiple jobs concurrently. Empirically we have found that parallel speed-up within a GHC build tends to fall off above 5 cores. Consequently, we generally limit each build to 4 cores and run as many concurrent jobs as necessary to fully occupy the machine.