ci: simplify and fix arm64 build #192
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
branches: | |
- '**' | |
tags-ignore: | |
- '*.*' | |
pull_request: | |
branches: | |
- '**' | |
jobs: | |
build: | |
name: Build node ${{ matrix.node }} on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ | |
macos-13, | |
macos-14, | |
macos-15, | |
ubuntu-22.04, | |
ubuntu-24.04, | |
ubuntu-24.04-arm, | |
windows-2022 | |
] | |
node: [18, 20, 22, 24] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Node v${{ matrix.node }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Install dependencies | |
run: npm install --build-from-source | |
- name: Package prebuild | |
run: npm run build | |
build_musl: | |
name: Build node ${{ matrix.node }} on ${{ matrix.os }} (musl) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, ubuntu-24.04-arm] | |
node: [18, 20, 22, 24] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
# Workaround https://github.com/actions/runner/issues/801 | |
- name: Setup container | |
run: | | |
docker run --name runner --rm -it -d -v $PWD:/node-opus -w /node-opus node:${{ matrix.node }}-alpine | |
- name: Setup env with Node v${{ matrix.node }} | |
run: | | |
docker exec runner apk add --update | |
docker exec runner apk add --no-cache ca-certificates git curl build-base python3 g++ make | |
- name: Install dependencies | |
run: docker exec runner npm install --build-from-source | |
- name: Package prebuild | |
run: docker exec runner npm run build | |
- name: Stop container | |
run: docker rm -f runner |