Salsa-CI is great and we have been using it for a while now: https://wiki.debian.org/Teams/MySQL/patches
One big challenge has been the big build and its tendency to hit file size to run time limits.
Currently Salsa has:
- max build output 4 MB
- max build duration 3h
- max file size?
The long build time is also annoying for developers. Luckily ccache helps a lot.
Stats
Normal shared runner on Salsa:
full pipeline 168 minutes: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/pipelines/182483
full pipeline 134 minutes: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/pipelines/183045
amd64 build 127 minutes with ccache hit rate 2%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1042849
amd64 build 30 minutes with ccache hit rate 99%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1048311
i386 build 97 minutes with ccache hit rate 2%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1042850
i386 build 23 minutes with ccache hit rate 99%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1048312
test-build-all/any 21 minutes with ccache hit rate 100%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1042854
test-build-all/any 68 minutes with ccache hit rate 50%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1048316
buster-backports build 112 minutes with ccache hit rate 2%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1048314
With customer runner, 4 CPU:
full suite 196 minutes: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/pipelines/183380
amd64 build 40 minutes, ccache 2%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1050500
buster-backports 33 minutes, ccache 2%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1050503
stretch-backports 40 minutes, ccache 25: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1050504
amd64 18 minutes, ccache 73%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1051817
test-build-all 10 minutes, ccache 100%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1051823
test-build-any 40 minutes, ccache 2%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1051822
With custom runner, 16 CPU:
full suite 95 minutes: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/pipelines/183597
amd64 build 17 minutes, ccache 2%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1052353
buster-backports 14 minutes, ccache 2%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1052323
i386 build 8 minutes, ccache 99%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1052354
stretch-backports 14 minutes, ccache 75%: https://salsa.debian.org/mariadb-team/mariadb-10.5/-/jobs/1052324
The runner had 32 GB of RAM which would have been enough for the builds consuming 8GB+ of disk space, but building with /var/lib/docker on tmpfs caused random failures in the compilation step, so did not complete a benchmark with it.
