Update build: Better support for fallback to local compile, upgrade node version support #72
Workflow file for this run
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
# Creates and publishes assets for a new release. | |
# To manually trigger this workflow, create a release in the GitHub UI. | |
name: "Publish binaries" | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
publish-github: | |
strategy: | |
# Allowing jobs to fail until 'node-pre-gyp-github' supports failing gracefully if file already exists | |
# (https://github.com/bchr02/node-pre-gyp-github/issues/42) | |
fail-fast: false | |
matrix: | |
node_version: [18, 19, 20] | |
system: | |
- os: macos-12 | |
target: x86_64-apple-darwin | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
- os: macos-13-large | |
target: aarch64-apple-darwin | |
include: | |
## ARM64 builds are not working. No ARM64 GitHub Action runners available out of box. Need to nail down cross compile | |
# - node_version: 16 | |
# system: | |
# os: macos-latest | |
# target: aarch64-apple-darwin | |
- node_version: 17 | |
system: | |
os: ubuntu-20.04 | |
target: x86_64-unknown-linux-gnu | |
- node_version: 17 | |
system: | |
os: macos-12 | |
target: x86_64-apple-darwin | |
runs-on: ${{ matrix.system.os }} | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@v2 | |
- name: Set up Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v2.1.5 | |
with: | |
node-version: ${{ matrix.node_version }} | |
- name: Setup Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
target: ${{ matrix.system.target }} | |
override: true | |
- name: Install dependencies | |
working-directory: ./ | |
run: yarn install --ignore-scripts | |
- name: Compile binary, test, package, and publish to Github release page | |
env: | |
NODE_PRE_GYP_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
CARGO_BUILD_TARGET: ${{ matrix.system.target }} | |
working-directory: ./ | |
run: yarn build-test-pack-publish |