66The ` linux-arm64 ` job of the ` integration-tests.yml ` workflow runs on a
77self-hosted runner for Linux and ARM64.
88
9- The basic setup is:
9+ The current basic setup is:
1010
1111* FP Complete has an Oracle Cloud account that provides a free tier that
1212 includes a really powerful ARM64 machine;
1313* within Oracle Cloud, FP Complete are running an Ubuntu/ARM64 instance; and
1414* on that instance, FP Complete are running the GitHub Runner software.
1515
16+ The runner name is ` stack-github-action3 ` and the machine name is
17+ ` stack-github-action3 ` .
18+
1619Occasionally Oracle will turn off the machine because:
1720
1821* Oracle thinks it is not being used (because of the free tier); and/or
1922* other things, like disk space filling up.
2023
21- ## Managing the runner
24+ ## Managing the ` stack-github-action3 ` runner
2225
2326With the appropriate authority installed on the server, the runner can be
2427managed remotely using SSH, with command
` ssh [email protected] ` .
@@ -28,3 +31,24 @@ is for filesystem `/dev/sda1`.
2831
2932If the available space is low, that may be due to unncessary GHC versions
3033installed in Stack's ` programs ` directory.
34+
35+ ## The ` ghc-arm-5 ` runner
36+
37+ From 9 February 2024, the Haskell Foundation sought to provide an alternative
38+ runner named ` ghc-arm-5 ` but that was based on NixOS and proved to be
39+ incompatible.
40+
41+ ## Alternatives to the self-hosted runners
42+
43+ One alternative to the self-hosted runners is to build statically-linked Stack
44+ executables for Linux/AArch64 on macOS/AArch64. This can be done thanks to
45+ the multi-architecture Docker images built and published by Olivier Benz, at
46+ https://gitlab.com/benz0li/ghc-musl .
47+
48+ GitHub provides a GitHub-hosted macOS/AArch64 runner (` macOS-14 ` ).
49+ Unfortunately, that is macOS/M1 and the M1 machine architecture does not support
50+ nested virtualisation. This rules out using Docker, as the runner is itself a
51+ virtual machine.
52+
53+ However, this solution can be applied locally and the build outputs for the
54+ Linux/AArch64 platform added manually to the result of the GitHub workflow.
0 commit comments