@@ -24,16 +24,19 @@ jobs:
2424 fail-fast : false
2525 matrix :
2626 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 }
3435 runs-on : ${{ matrix.os }}
3536 container :
3637 image : ${{ matrix.container }}
38+ volumes :
39+ - /:/host
3740 steps :
3841 - name : Install aarch64-linux-gnu
3942 if : ${{ matrix.platform == 'linux-arm64' && matrix.libc != 'musl' }}
4750 apk update
4851 apk add git ninja bash build-base nodejs linux-headers
4952
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+
5062 - name : Prepare for Linux
5163 if : ${{ matrix.target == 'linux' && matrix.libc != 'musl' }}
5264 run : |
6173 if : ${{ matrix.target == 'windows' }}
6274 run : .\make.bat ${{ matrix.platform }}
6375
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') }}
6678 run : |
6779 ./make.sh ${{ matrix.platform }}
6880
7890 docker build -t ubuntu-18.04 .
7991 docker run --rm -v $(pwd):$(pwd) -w $(pwd) ubuntu-18.04 bash -c './make.sh'
8092
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+
8199 - name : Setting up workflow variables
82100 id : vars
83101 shell : bash
0 commit comments