name: CI on: push: branches: - main tags: - v* pull_request: jobs: build: name: ${{ matrix.friendlyName }} runs-on: ${{ matrix.os }} timeout-minutes: 10 strategy: fail-fast: false matrix: node: [14.15.4] os: [macos-latest, windows-latest, ubuntu-18.04] include: - os: macos-latest friendlyName: macOS - os: windows-latest friendlyName: Windows - os: ubuntu-18.04 friendlyName: Linux steps: - uses: actions/checkout@v2 with: submodules: recursive - name: Use Node.js ${{ matrix.node }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node }} # This step can be removed as soon as official Windows arm64 builds are published: # https://github.com/nodejs/build/issues/2450#issuecomment-705853342 - run: | $NodeVersion = (node --version) -replace '^.' $NodeFallbackVersion = "15.8.0" & .\script\download-node-lib-win-arm64.ps1 $NodeVersion $NodeFallbackVersion if: ${{ matrix.os == 'windows-latest' }} name: Install Windows arm64 node.lib - name: Install and build run: | yarn install yarn build - name: Lint run: yarn lint - name: Test run: yarn test shell: bash - name: Prebuild (x64) run: npm run prebuild-napi-x64 - name: Prebuild (arm64) run: npm run prebuild-napi-arm64 if: ${{ matrix.os != 'ubuntu-18.04' }} - name: Prebuild (Windows x86) run: npm run prebuild-napi-ia32 if: ${{ matrix.os == 'windows-latest' }} - name: Publish if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') run: yarn upload env: GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}