ci: Rework CI for Darwin
This branch does a few things:
- Makes GHC on platforms which ship runtime-retargetable toolchains (e.g. Darwin) more robust by passing the
--target=<triple>
flag where possible (fixing #20162 (closed)) - Refactors the CI-phase timing logic into
ci.sh
- Isolates the build from
$HOME
, using theCABAL_DIR
environment variable to ensure thatcabal-install
doesn't look in$HOME
- Eliminates the usage of
nix-shell
from the CI infrastructure, rather generating a shell fragment to provide the environment (fixing #20131 (closed)) - Performs a few sundry cleanups
Edited by Ben Gamari