Skip to content

ci: Update

ci: Update #10

Workflow file for this run

name: Publish
permissions:
contents: write
id-token: write
on:
push:
tags:
- test-v*
jobs:
Build:
name: Build Package
strategy:
fail-fast: false
matrix:
settings:
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
- host: ubuntu-latest
target: arm64-unknown-linux-gnu
setup: |
sudo apt-get update &&
sudo apt-get install -y --no-install-recommends cmake g++-aarch64-linux-gnu python3-pip
sudo rm -rf /var/lib/apt/lists/* /var/cache/apt/pkgcache.bin /var/cache/apt/srcpkgcache.bin
export CC="aarch64-linux-gnu-gcc";
export CXX="aarch64-linux-gnu-g++";
arch: arm64
- host: windows-latest
target: x86_64-pc-windows-msvc
- host: macos-latest
target: x86_64-apple-darwin
- host: macos-latest
target: aarch64-apple-darwin
setup: |
sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*;
export CC=$(xcrun -f clang);
export CXX=$(xcrun -f clang++);
SYSROOT=$(xcrun --sdk macosx --show-sdk-path);
export CFLAGS="-isysroot $SYSROOT -isystem $SYSROOT";
arch: arm64
runs-on: ${{ matrix.settings.host }}
steps:
- name: Checkout
uses: actions/checkout@v4.1.0
- name: Setup Node
uses: actions/setup-node@v3.8.1
with:
node-version: 18
- name: Setup Python
uses: actions/setup-python@v4.7.1
with:
python-version: "3.9"
- name: Setup env
if: ${{ matrix.settings.setup }}
shell: bash
run: ${{ matrix.settings.setup }}
- name: Install
run: npm install --arch=${{ matrix.settings.arch }}
- name: Gyp rebuild
run: node ./scripts/rebuild.js && npx node-gyp rebuild --arch=${{ matrix.settings.arch }}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: bindings-${{ matrix.settings.target }}
path: |
./build/Release/*.node
./build/Release/*.dll
if-no-files-found: error