@@ -24,16 +24,19 @@ jobs:
24
24
fail-fast : false
25
25
matrix :
26
26
include :
27
- - { os: ubuntu-22.04, target: linux, platform: linux-x64, container: 'alpine:latest', libc: musl }
28
- - { os: ubuntu-20.04, target: linux, platform: linux-x64 }
29
- - { os: ubuntu-20.04, target: linux, platform: linux-arm64 }
30
- - { os: macos-latest, target: darwin, platform: darwin-x64 }
31
- - { os: macos-latest, target: darwin, platform: darwin-arm64 }
32
- - { os: windows-latest, target: windows, platform: win32-ia32 }
33
- - { os: windows-latest, target: windows, platform: win32-x64 }
27
+ - { os: ubuntu-22.04, target: linux, platform: linux-x64, container: 'alpine:latest', libc: musl }
28
+ - { os: ubuntu-20.04, target: linux, platform: linux-x64 }
29
+ - { os: ubuntu-20.04, target: linux, platform: linux-arm64 }
30
+ - { os: ubuntu-22.04-arm, target: linux, platform: linux-arm64, container: 'alpine:latest', libc: musl }
31
+ - { os: macos-latest, target: darwin, platform: darwin-x64 }
32
+ - { os: macos-latest, target: darwin, platform: darwin-arm64 }
33
+ - { os: windows-latest, target: windows, platform: win32-ia32 }
34
+ - { os: windows-latest, target: windows, platform: win32-x64 }
34
35
runs-on : ${{ matrix.os }}
35
36
container :
36
37
image : ${{ matrix.container }}
38
+ volumes :
39
+ - /:/host
37
40
steps :
38
41
- name : Install aarch64-linux-gnu
39
42
if : ${{ matrix.platform == 'linux-arm64' && matrix.libc != 'musl' }}
47
50
apk update
48
51
apk add git ninja bash build-base nodejs linux-headers
49
52
53
+ - name : Prepare container for linux-arm64-musl platform
54
+ if : ${{ matrix.platform == 'linux-arm64' && matrix.libc == 'musl' }}
55
+ run : |
56
+ # workaround to support javascript actions in alpine arm64.
57
+ # https://github.com/actions/runner/issues/801#issuecomment-2394425757
58
+ sed -i "s:ID=alpine:ID=NotpineForGHA:" /etc/os-release
59
+ cd /host/home/runner/runners/*/externals/
60
+ rm -rf node20/* && mkdir node20/bin && ln -s /usr/bin/node node20/bin/node
61
+
50
62
- name : Prepare for Linux
51
63
if : ${{ matrix.target == 'linux' && matrix.libc != 'musl' }}
52
64
run : |
61
73
if : ${{ matrix.target == 'windows' }}
62
74
run : .\make.bat ${{ matrix.platform }}
63
75
64
- - name : Build for Linux
65
- if : ${{ matrix.target == 'linux' }}
76
+ - name : Build for Linux except linux-arm64-musl
77
+ if : ${{ matrix.target == 'linux' && !(matrix.platform == 'linux-arm64' && matrix.libc == 'musl') }}
66
78
run : |
67
79
./make.sh ${{ matrix.platform }}
68
80
78
90
docker build -t ubuntu-18.04 .
79
91
docker run --rm -v $(pwd):$(pwd) -w $(pwd) ubuntu-18.04 bash -c './make.sh'
80
92
93
+ - name : Build for linux-arm64-musl
94
+ if : ${{ matrix.platform == 'linux-arm64' && matrix.libc == 'musl' }}
95
+ run : |
96
+ ninja -C 3rd/luamake -f compile/ninja/linux.ninja
97
+ ./3rd/luamake/luamake all
98
+
81
99
- name : Setting up workflow variables
82
100
id : vars
83
101
shell : bash
0 commit comments