Commit 9ba2660
authored
Use native Linux ARM runners for ARM 64-bit builds (#94)
The build workflows generate ARM 64-bit builds of the application for Linux, macOS, and Windows hosts. When those builds
are performed in the x86 "ubuntu-latest" runner machine, they fail due to incompatibility between the Docker container
in which the builds are performed and the runner architecture:
```
Status: Downloaded newer image for docker.elastic.co/beats-dev/golang-crossbuild:1.25.2-windows-arm64-debian12
WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested
exec /crossbuild: exec format error
task: Failed to run task "dist:Windows_ARM64": exit status 255
```
The established solution for this problem is to instead use the Linux ARM "ubuntu-24.04-arm" runner machine for those
builds. The builds can be performed on this runner due to it having the required host architecture for compatibility
with the build containers.
Previously, an alternative solution was used in this project: using QEMU to emulate the required host architecture. That
solution was inferior in multiple ways:
- Introduces an additional action dependency ("docker/setup-qemu-action").
- Less efficient due to the overhead of installing QEMU, and the inferior performance of the build under emulation.
For this reason, the workflow is ported to using the appropriate runner machine for the ARM 64-bit build jobs instead of
depending on QEMU.1 parent 2eabc9e commit 9ba2660
File tree
2 files changed
+22
-8
lines changed- .github/workflows
2 files changed
+22
-8
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
| 81 | + | |
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| 91 | + | |
91 | 92 | | |
92 | 93 | | |
93 | 94 | | |
| 95 | + | |
94 | 96 | | |
95 | 97 | | |
96 | 98 | | |
| 99 | + | |
97 | 100 | | |
98 | 101 | | |
99 | 102 | | |
| 103 | + | |
100 | 104 | | |
101 | 105 | | |
102 | 106 | | |
| 107 | + | |
103 | 108 | | |
104 | 109 | | |
105 | 110 | | |
| 111 | + | |
106 | 112 | | |
107 | 113 | | |
108 | 114 | | |
| 115 | + | |
109 | 116 | | |
110 | 117 | | |
111 | 118 | | |
| 119 | + | |
112 | 120 | | |
113 | 121 | | |
114 | 122 | | |
| 123 | + | |
115 | 124 | | |
116 | 125 | | |
117 | 126 | | |
| 127 | + | |
118 | 128 | | |
119 | 129 | | |
120 | 130 | | |
| |||
126 | 136 | | |
127 | 137 | | |
128 | 138 | | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | 139 | | |
133 | 140 | | |
134 | 141 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
| 33 | + | |
32 | 34 | | |
33 | 35 | | |
| 36 | + | |
34 | 37 | | |
35 | 38 | | |
| 39 | + | |
36 | 40 | | |
37 | 41 | | |
| 42 | + | |
38 | 43 | | |
39 | 44 | | |
| 45 | + | |
40 | 46 | | |
41 | 47 | | |
| 48 | + | |
42 | 49 | | |
43 | 50 | | |
| 51 | + | |
44 | 52 | | |
45 | 53 | | |
| 54 | + | |
46 | 55 | | |
47 | 56 | | |
| 57 | + | |
48 | 58 | | |
49 | 59 | | |
50 | 60 | | |
| |||
68 | 78 | | |
69 | 79 | | |
70 | 80 | | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | 81 | | |
75 | 82 | | |
76 | 83 | | |
| |||
0 commit comments