feat: output filename #3778
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: node-bind-build | |
env: | |
DEBUG: napi:* | |
APP_NAME: mako | |
MACOSX_DEPLOYMENT_TARGET: '10.13' | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
tags-ignore: | |
- '**' | |
paths-ignore: | |
- '**/*.md' | |
- LICENSE | |
- '**/*.gitignore' | |
- .editorconfig | |
- docs/** | |
pull_request: | |
types: [ opened, synchronize ] | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- host: macos-latest | |
target: x86_64-apple-darwin | |
build: | | |
rustup target add x86_64-apple-darwin | |
pnpm --filter @umijs/mako build --target x86_64-apple-darwin | |
strip -x ./packages/mako/*.node | |
- host: macos-latest | |
target: aarch64-apple-darwin | |
build: | | |
rustup target add aarch64-apple-darwin | |
pnpm --filter @umijs/mako build --target aarch64-apple-darwin | |
strip -x ./packages/mako/*.node | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian | |
build: |- | |
set -e && | |
pnpm --filter @umijs/mako build --target x86_64-unknown-linux-gnu && | |
strip ./packages/mako/*.node | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-musl | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine | |
build: | | |
pnpm --filter @umijs/mako build --target x86_64-unknown-linux-musl | |
strip -x ./packages/mako/*.node | |
- host: ubuntu-latest | |
target: aarch64-unknown-linux-gnu | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 | |
build: |- | |
set -e && | |
export JEMALLOC_SYS_WITH_LG_PAGE=16 && | |
export CC_aarch64_unknown_linux_gnu=/usr/aarch64-unknown-linux-gnu/bin/aarch64-unknown-linux-gnu-gcc && | |
rustup target add aarch64-unknown-linux-gnu && | |
pnpm --filter @umijs/mako build --target aarch64-unknown-linux-gnu | |
- host: ubuntu-latest | |
target: aarch64-unknown-linux-musl | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine | |
build: |- | |
set -e && | |
rustup target add aarch64-unknown-linux-musl && | |
pnpm --filter @umijs/mako build --target aarch64-unknown-linux-musl | |
- host: windows-latest | |
build: | | |
rustup target add x86_64-pc-windows-msvc | |
pnpm --filter @umijs/mako build --target x86_64-pc-windows-msvc | |
strip -x ./packages/mako/*.node | |
target: x86_64-pc-windows-msvc | |
- host: windows-latest | |
build: | | |
rustup target add i686-pc-windows-msvc | |
pnpm --filter @umijs/mako build --target i686-pc-windows-msvc | |
strip -x ./packages/mako/*.node | |
target: i686-pc-windows-msvc | |
name: stable - ${{ matrix.settings.target }} - node@20 | |
runs-on: ${{ matrix.settings.host }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
if: ${{ !matrix.settings.docker }} | |
with: | |
node-version: 18 | |
check-latest: true | |
cache: pnpm | |
- name: Install | |
uses: dtolnay/rust-toolchain@stable | |
if: ${{ !matrix.settings.docker }} | |
with: | |
toolchain: stable | |
targets: ${{ matrix.settings.target }} | |
- name: Cache cargo | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
.cargo-cache | |
target/ | |
key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }}-${{ hashFiles('./Cargo.lock') }} | |
- uses: goto-bus-stop/setup-zig@v2 | |
if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }} | |
with: | |
version: 0.10.1 | |
- name: Setup toolchain | |
run: ${{ matrix.settings.setup }} | |
if: ${{ matrix.settings.setup }} | |
shell: bash | |
- name: Install dependencies | |
run: pnpm install | |
- name: Setup node x86 | |
uses: actions/setup-node@v4 | |
if: matrix.settings.target == 'i686-pc-windows-msvc' | |
with: | |
node-version: 18 | |
check-latest: true | |
cache: pnpm | |
architecture: x86 | |
- name: Build in docker | |
uses: addnab/docker-run-action@v3 | |
if: ${{ matrix.settings.docker }} | |
with: | |
image: ${{ matrix.settings.docker }} | |
options: '--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build' | |
run: ${{ matrix.settings.build }} | |
- name: Build | |
run: ${{ matrix.settings.build }} | |
if: ${{ !matrix.settings.docker }} | |
shell: bash | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: bindings-${{ matrix.settings.target }} | |
path: ./packages/mako/*.node | |
if-no-files-found: error | |
zip: | |
name: Zip | |
runs-on: ubuntu-latest | |
needs: | |
- build | |
steps: | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: ./ | |
merge-multiple: true | |
- name: List packages | |
run: ls *.node | |
shell: bash | |
- name: Upload Zip file | |
if: ${{ github.event_name == 'workflow_dispatch' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
path: mako.*.node | |
name: artifacts-${{ github.sha }} | |
- name: Upload Zip file CI | |
if: ${{ github.event_name != 'workflow_dispatch' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
path: mako.*.node | |
name: artifacts-${{ github.event.pull_request.head.sha }} |