ci: 🎡 fix path #10
This file contains 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: CI | |
on: | |
push: | |
branches: | |
- '*' | |
tags: | |
- '*' | |
pull_request: | |
branches: | |
- '*' | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
node-version: [16, 18, 20, 22] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Set macOS system controls | |
if: runner.os == 'macOS' | |
run: | | |
sudo sysctl -w kern.sysv.shmall=65536 | |
sudo sysctl -w kern.sysv.shmmax=16777216 | |
- name: Setup build tools | |
run: | | |
npm install -g node-gyp | |
npm install -g node-pre-gyp-github | |
- name: Setup macOS build tools | |
if: runner.os == 'macOS' | |
run: | | |
env HOMEBREW_NO_AUTO_UPDATE=1 brew install autoconf automake libtool | |
- name: Set publish flag | |
run: | | |
echo "PUBLISH_BINARY=false" >> $GITHUB_ENV | |
if [[ "${{ github.ref }}" == "refs/tags/"* ]]; then | |
echo "PUBLISH_BINARY=true" >> $GITHUB_ENV | |
fi | |
if [[ "${{ github.event.head_commit.message }}" == *"[publish binary]"* ]]; then | |
echo "PUBLISH_BINARY=true" >> $GITHUB_ENV | |
fi | |
- name: Setup Linux compiler | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y g++ | |
echo "CXX=g++" >> $GITHUB_ENV | |
- name: Install dependencies | |
run: | | |
npm install --build-from-source | |
npm test | |
- name: Before Build | |
run: | | |
if [[ $PUBLISH_BINARY == true ]]; then node-pre-gyp package; node-pre-gyp-github publish --release; fi; | |
./node_modules/.bin/node-pre-gyp clean | |
node-gyp clean | |
- name: Publish Check | |
run: | | |
INSTALL_RESULT=0 | |
if [[ $PUBLISH_BINARY == true ]]; then INSTALL_RESULT=$(npm install --fallback-to-build=false > /dev/null)$? || true; fi; | |
if [[ $INSTALL_RESULT != 0 ]]; then echo "returned $INSTALL_RESULT";false; fi | |
./node_modules/.bin/node-pre-gyp clean | |
- name: Build Success | |
run: ./node_modules/.bin/node-pre-gyp info |