ci: 🎡 fix ci #5
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@v3 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- 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: 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-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-pre-gyp clean | |
- name: Build Success | |
run: node-pre-gyp info |