Skip to content

Commit

Permalink
Linux ARM64 prebuilds (#850)
Browse files Browse the repository at this point in the history
* attempt arm64 prebuilds

* run tests on ARM64

* permission workaround

* revert to checkout v3

* separate arm unit tests

* fix arm container

* use unsafe-perm on arm64
  • Loading branch information
seemk authored Dec 11, 2023
1 parent 492ec83 commit aef041e
Showing 1 changed file with 47 additions and 1 deletion.
48 changes: 47 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,32 @@ jobs:
with:
name: prebuilds-linux
path: prebuilds
prebuilds-linux-arm64:
runs-on: [self-hosted, Linux, ARM64]
strategy:
fail-fast: false
matrix:
container: ['node:14.0.0']
node_api_target: ['14.0.0', '15.0.0', '16.0.0', '17.0.1', '18.0.0']
include:
- container: 'node:16.0.0'
node_api_target: '20.0.0'
- container: 'node:16.0.0'
node_api_target: '21.2.0'
container: ${{ matrix.container }}
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-node@v3
- name: Install npm dependencies
run: npm ci --ignore-scripts --no-optional
- name: Prebuild
run: npm run prebuild:os ${{ matrix.node_api_target }}
- name: upload prebuilds
uses: actions/upload-artifact@v3
with:
name: prebuilds-linux-arm64
path: prebuilds

prebuilds-macos-windows:
strategy:
Expand Down Expand Up @@ -62,7 +88,7 @@ jobs:
path: prebuilds

create-package:
needs: [prebuilds-linux, prebuilds-macos-windows]
needs: [prebuilds-linux, prebuilds-macos-windows, prebuilds-linux-arm64]
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -80,6 +106,7 @@ jobs:
mkdir -p prebuilds
cp -r prebuilds-linux/* prebuilds
cp -r prebuilds-macos-windows/* prebuilds
cp -r prebuilds-linux-arm64/* prebuilds
- name: Install npm dependencies
run: npm ci --ignore-scripts
- name: Build
Expand Down Expand Up @@ -126,6 +153,25 @@ jobs:
with:
verbose: true

unit-tests-arm64:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['ARM64']
nodejs: ['14', '16', '17', '18', '20', '21']
container: node:${{ matrix.nodejs }}
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}
- name: Install npm dependencies
run: npm ci --unsafe-perm
- name: Test
run: npm run test

build:
runs-on: ubuntu-latest
steps:
Expand Down

0 comments on commit aef041e

Please sign in to comment.