6
6
The ` linux-arm64 ` job of the ` integration-tests.yml ` workflow runs on a
7
7
self-hosted runner for Linux and ARM64.
8
8
9
- The basic setup is:
9
+ The current basic setup is:
10
10
11
11
* FP Complete has an Oracle Cloud account that provides a free tier that
12
12
includes a really powerful ARM64 machine;
13
13
* within Oracle Cloud, FP Complete are running an Ubuntu/ARM64 instance; and
14
14
* on that instance, FP Complete are running the GitHub Runner software.
15
15
16
+ The runner name is ` stack-github-action3 ` and the machine name is
17
+ ` stack-github-action3 ` .
18
+
16
19
Occasionally Oracle will turn off the machine because:
17
20
18
21
* Oracle thinks it is not being used (because of the free tier); and/or
19
22
* other things, like disk space filling up.
20
23
21
- ## Managing the runner
24
+ ## Managing the ` stack-github-action3 ` runner
22
25
23
26
With the appropriate authority installed on the server, the runner can be
24
27
managed remotely using SSH, with command
` ssh [email protected] ` .
@@ -28,3 +31,24 @@ is for filesystem `/dev/sda1`.
28
31
29
32
If the available space is low, that may be due to unncessary GHC versions
30
33
installed 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