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_DIRenvironment variable to ensure thatcabal-installdoesn't look in$HOME - Eliminates the usage of
nix-shellfrom the CI infrastructure, rather generating a shell fragment to provide the environment (fixing #20131 (closed)) - Performs a few sundry cleanups
Edited by Ben Gamari