The money used for CI is not public, but there are some things that are often said: it’s a considerable amount of money, and the infra team isn’t willing to double it (e.g. to support parallel testing).
The workload is basically 1.5–3 hours for each builder, which we have around 40 on Linux (including cross compile), 5 for macOS and 4 for Windows. If we get a better machine, there are duplicate compilation which we can avoid by sharing builders.
The specs are (my memory is ambiguous, feel free to correct):
- Travis Linux: n1-standard-4 (GCE), 4 virtualized hyperthreads, 7.5 GB RAM
- Travis macOS: 3 virtualized hyperthreads
- AppVeyor: 4 virtualized hyperthreads
All of them are amd64, and we don’t have plans to use something like ARM. Notable thing is that we do run QEMU on some of the builders, but IIRC that’s not the bottleneck but the asm.js builder.
One of the CI bottleneck is that rustc is not currently good at exploiting multiple cores; we have a notable amount of compilation time blocked on single thread.
Proposals to self host the infrastructures has been rejected in the past, due to the lack of human resources to maintain them.