Skip to content

fix: add Default impl for FacetPack to satisfy clippy #3

fix: add Default impl for FacetPack to satisfy clippy

fix: add Default impl for FacetPack to satisfy clippy #3

Workflow file for this run

name: CI
on:
pull_request:
push:
branches-ignore:
- main
env:
DEBUG: napi:*
APP_NAME: facetpack-native
MACOSX_DEPLOYMENT_TARGET: '10.13'
CARGO_INCREMENTAL: 0
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Cache Bun dependencies
uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Install dependencies
run: bun install
- name: Lint Rust
run: cargo fmt --check
working-directory: packages/facetpack-native
- name: Clippy
run: cargo clippy -- -D warnings
working-directory: packages/facetpack-native
- name: TypeScript typecheck
run: bun run typecheck
working-directory: packages/facetpack
build:
name: Build - ${{ matrix.settings.target }}
runs-on: ${{ matrix.settings.host }}
strategy:
fail-fast: false
matrix:
settings:
- host: macos-latest
target: x86_64-apple-darwin
build: bun run build --target x86_64-apple-darwin
- host: macos-latest
target: aarch64-apple-darwin
build: bun run build --target aarch64-apple-darwin
- host: windows-latest
target: x86_64-pc-windows-msvc
build: bun run build --target x86_64-pc-windows-msvc
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
build: bun run build --target x86_64-unknown-linux-gnu
- host: ubuntu-latest
target: aarch64-unknown-linux-gnu
build: |
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
bun run build --target aarch64-unknown-linux-gnu
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.settings.target }}
- name: Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
packages/facetpack-native/target/
key: ${{ runner.os }}-${{ matrix.settings.target }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.settings.target }}-cargo-
- name: Install dependencies
run: bun install
working-directory: packages/facetpack-native
- name: Build native
run: ${{ matrix.settings.build }}
working-directory: packages/facetpack-native
shell: bash
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: bindings-${{ matrix.settings.target }}
path: packages/facetpack-native/*.node
if-no-files-found: error
universal-macos:
name: Build universal macOS binary
runs-on: macos-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Download x86_64 artifact
uses: actions/download-artifact@v4
with:
name: bindings-x86_64-apple-darwin
path: artifacts
- name: Download aarch64 artifact
uses: actions/download-artifact@v4
with:
name: bindings-aarch64-apple-darwin
path: artifacts
- name: Create universal binary
run: |
lipo -create \
artifacts/facetpack-native.darwin-x64.node \
artifacts/facetpack-native.darwin-arm64.node \
-output facetpack-native.darwin-universal.node
- name: Upload universal artifact
uses: actions/upload-artifact@v4
with:
name: bindings-universal-apple-darwin
path: facetpack-native.darwin-universal.node
if-no-files-found: error
test:
name: Test
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Download Linux artifact
uses: actions/download-artifact@v4
with:
name: bindings-x86_64-unknown-linux-gnu
path: packages/facetpack-native
- name: Verify binary exists
run: ls -la packages/facetpack-native/*.node
- name: Cache Bun dependencies
uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lockb') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Install dependencies
run: bun install
- name: Build all packages
run: bun run build:all
- name: Test all packages
run: bun run test:all
test-macos:
name: Test (macOS)
runs-on: macos-latest
needs: universal-macos
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Download universal artifact
uses: actions/download-artifact@v4
with:
name: bindings-universal-apple-darwin
path: packages/facetpack-native
- name: Verify binary exists
run: ls -la packages/facetpack-native/*.node
- name: Install dependencies
run: bun install
- name: Build all packages
run: bun run build:all
- name: Test all packages
run: bun run test:all
test-windows:
name: Test (Windows)
runs-on: windows-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Download Windows artifact
uses: actions/download-artifact@v4
with:
name: bindings-x86_64-pc-windows-msvc
path: packages/facetpack-native
- name: Verify binary exists
run: dir packages\facetpack-native\*.node
- name: Install dependencies
run: bun install
- name: Build all packages
run: bun run build:all
- name: Test all packages
run: bun run test:all