chore: bump up all non-major dependencies (#91) #353
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 | |
env: | |
DEBUG: napi:* | |
APP_NAME: image | |
MACOSX_DEPLOYMENT_TARGET: '10.13' | |
SYSTEM_DEPS_DAV1D_BUILD_INTERNAL: 'always' | |
permissions: | |
contents: write | |
id-token: write | |
'on': | |
push: | |
branches: | |
- main | |
tags-ignore: | |
- '**' | |
paths-ignore: | |
- '**/*.md' | |
- LICENSE | |
- '**/*.gitignore' | |
- .editorconfig | |
- docs/** | |
- website/** | |
pull_request: null | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- host: macos-14 | |
target: x86_64-apple-darwin | |
setup: | | |
brew install meson llvm | |
build: | | |
export PATH="/opt/homebrew/opt/llvm/bin:$PATH" | |
export CC=clang | |
export CXX=clang++ | |
export CMAKE_BUILD_PARALLEL_LEVEL=2 | |
clang --version | |
yarn workspace @napi-rs/image build --target x86_64-apple-darwin --features with_simd | |
- host: windows-latest | |
build: | | |
python -m pip install meson | |
yarn workspace @napi-rs/image build --target x86_64-pc-windows-msvc --features with_simd | |
target: x86_64-pc-windows-msvc | |
- host: macos-14 | |
setup: | | |
brew install meson llvm | |
cargo install cargo-xwin | |
build: | | |
export XWIN_CACHE_DIR="$(pwd)/.xwin" | |
export XWIN_ARCH=x86 | |
export CFLAGS="-mavx2 -mpclmul" | |
export CXXFLAGS="-mavx2 -mpclmul" | |
export CARGO_PROFILE_RELEASE_LTO="false" | |
export PATH="/opt/homebrew/opt/llvm/bin:$PATH" | |
clang --version | |
CARGO="cargo-xwin" yarn workspace @napi-rs/image build --features with_simd --target i686-pc-windows-msvc | |
target: i686-pc-windows-msvc | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian | |
build: >- | |
set -e && | |
apt-get update && | |
apt-get install meson -y && | |
rm /usr/lib/llvm-18/lib/libc++.so && | |
export LDFLAGS="-L/usr/lib/llvm-18/lib -L/usr/x86_64-unknown-linux-gnu/lib/gcc/x86_64-unknown-linux-gnu/4.8.5" && | |
export CFLAGS="-fuse-ld=lld -B/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5 --sysroot=/usr/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sysroot" && | |
export CXXFLAGS="-stdlib=libc++ -fuse-ld=lld -B/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5 --sysroot=/usr/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/sysroot -L/usr/lib/llvm-15/lib" && | |
yarn workspace @napi-rs/image build --features with_simd --target x86_64-unknown-linux-gnu && | |
chmod -R 777 target | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-musl | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine | |
build: >- | |
set -e && | |
unset RUSTFLAGS && | |
unset CC && | |
unset CXX && | |
apk add --update --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing --no-cache perl nasm aom-dev meson && | |
export LIB_AOM_STATIC_LIB_PATH=/usr/lib && | |
export LIB_AOM_INCLUDE_PATH=/usr/include/aom/aom && | |
export LIB_AOM_PKG_CONFIG_PATH=/usr/lib/pkgconfig && | |
yarn workspace @napi-rs/image build --target x86_64-unknown-linux-musl --features with_simd && | |
chmod -R 777 target | |
- host: macos-latest | |
target: aarch64-apple-darwin | |
setup: | | |
brew install meson llvm | |
build: | | |
export PATH="/usr/local/opt/llvm/bin:$PATH" | |
export MACOSX_DEPLOYMENT_TARGET='11.0' | |
export CMAKE_BUILD_PARALLEL_LEVEL=2 | |
export CC=clang | |
export CXX=clang++ | |
export CARGO_TARGET_AARCH64_APPLE_DARWIN_LINKER="clang" | |
clang --version | |
yarn workspace @napi-rs/image build --target aarch64-apple-darwin --features with_simd -- -vvv | |
- host: ubuntu-latest | |
target: aarch64-unknown-linux-gnu | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 | |
build: >- | |
set -e && | |
rm /usr/aarch64-unknown-linux-gnu/lib/llvm-18/lib/libunwind.so && | |
rm /usr/aarch64-unknown-linux-gnu/lib/llvm-18/lib/libc++.so && | |
export LDFLAGS="-L/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5" && | |
export CFLAGS="-fuse-ld=lld -mcrc -B/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot" && | |
export CXXFLAGS="-fuse-ld=lld -mcrc -B/usr/aarch64-unknown-linux-gnu/lib/gcc/aarch64-unknown-linux-gnu/4.8.5 --sysroot=/usr/aarch64-unknown-linux-gnu/aarch64-unknown-linux-gnu/sysroot -L/usr/aarch64-unknown-linux-gnu/lib/llvm-18/lib -stdlib=libc++" && | |
yarn workspace @napi-rs/image build --features with_simd --target aarch64-unknown-linux-gnu && | |
chmod -R 777 target | |
- host: ubuntu-latest | |
target: armv7-unknown-linux-gnueabihf | |
setup: | | |
sudo apt-get update | |
sudo apt-get install meson gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf | |
build: CC="arm-linux-gnueabihf-gcc" yarn workspace @napi-rs/image build --target armv7-unknown-linux-gnueabihf --features oxipng_libdeflater --use-napi-cross | |
- host: ubuntu-latest | |
target: aarch64-linux-android | |
build: | | |
sudo apt update | |
sudo apt install meson -y | |
export LDFLAGS="--target=aarch64-linux-android24" | |
yarn workspace @napi-rs/image build --target aarch64-linux-android --features with_simd | |
- host: ubuntu-latest | |
target: aarch64-unknown-linux-musl | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine | |
build: >- | |
set -e && | |
unset RUSTFLAGS && | |
unset CC && | |
unset CXX && | |
apk add --update --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing --no-cache aom-dev perl meson && | |
yarn workspace @napi-rs/image build --target aarch64-unknown-linux-musl --features with_simd && | |
chmod -R 777 target | |
- host: macos-14 | |
target: wasm32-wasi-preview1-threads | |
setup: | | |
wget https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-21/wasi-sdk-21.0-macos.tar.gz | |
tar -xvf wasi-sdk-21.0-macos.tar.gz | |
build: | | |
export WASI_SDK_PATH="$(pwd)/wasi-sdk-21.0" | |
export CMAKE_BUILD_PARALLEL_LEVEL=2 | |
yarn workspace @napi-rs/image build --target wasm32-wasi-preview1-threads | |
name: stable - ${{ matrix.settings.target }} - node@20 | |
runs-on: ${{ matrix.settings.host }} | |
env: | |
RUST_TARGET: ${{ matrix.settings.target }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: yarn | |
- name: Setup nasm | |
uses: ilammy/setup-nasm@v1 | |
if: matrix.settings.target == 'x86_64-pc-windows-msvc' || matrix.settings.target == 'x86_64-apple-darwin' || matrix.settings.target == 'i686-pc-windows-msvc' | |
- name: Install | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
targets: ${{ matrix.settings.target }} | |
- name: Cache cargo registry | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
.cargo-cache | |
.xwin | |
~/.napi-rs | |
target/ | |
key: ${{ matrix.settings.target }}-cargo-cache | |
- uses: goto-bus-stop/setup-zig@v2 | |
if: ${{ contains(matrix.settings.target, 'musl') }} | |
with: | |
version: 0.11.0 | |
- name: Setup toolchain | |
run: ${{ matrix.settings.setup }} | |
if: ${{ matrix.settings.setup }} | |
shell: bash | |
- name: Install dependencies | |
run: yarn install --immutable --mode=skip-build | |
- 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/*/*.node | |
packages/*/*.wasm | |
if-no-files-found: error | |
build-freebsd: | |
runs-on: macos-12 | |
name: Build FreeBSD | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build | |
id: build | |
uses: cross-platform-actions/action@v0.24.0 | |
env: | |
DEBUG: 'napi:*' | |
RUSTUP_HOME: /home/runner/rustup | |
CARGO_HOME: /home/runner/cargo | |
RUSTUP_IO_THREADS: 1 | |
with: | |
operating_system: freebsd | |
version: '13.2' | |
memory: 8G | |
cpu_count: 3 | |
environment_variables: 'DEBUG RUSTUP_IO_THREADS' | |
shell: bash | |
run: | | |
env | sort | |
sudo pkg install -y -f curl node libnghttp2 npm cmake nasm perl5 | |
sudo npm install -g yarn --ignore-scripts | |
curl https://sh.rustup.rs -sSf --output rustup.sh | |
sh rustup.sh -y --default-toolchain stable | |
source "$HOME/.cargo/env" | |
echo "~~~~ rustc --version ~~~~" | |
rustc --version | |
echo "~~~~ node -v ~~~~" | |
node -v | |
echo "~~~~ yarn --version ~~~~" | |
yarn --version | |
pwd | |
ls -lah | |
whoami | |
env | |
freebsd-version | |
yarn install --immutable --mode=skip-build | |
yarn workspace @napi-rs/image build --features oxipng_libdeflater | |
rm -rf node_modules | |
rm -rf target | |
rm -rf .yarn | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: bindings-freebsd | |
path: packages/*/*.node | |
if-no-files-found: error | |
test-macOS-windows-binding: | |
name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- host: windows-latest | |
target: x86_64-pc-windows-msvc | |
- host: macos-14 | |
target: x86_64-apple-darwin | |
- host: macos-14 | |
target: aarch64-apple-darwin | |
node: | |
- '18' | |
- '20' | |
runs-on: ${{ matrix.settings.host }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
if: startsWith(matrix.settings.target, 'x86_64') | |
with: | |
node-version: ${{ matrix.node }} | |
cache: 'yarn' | |
architecture: 'x64' | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
if: startsWith(matrix.settings.target, 'aarch64') | |
with: | |
node-version: ${{ matrix.node }} | |
cache: 'yarn' | |
architecture: 'arm64' | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: bindings-${{ matrix.settings.target }} | |
path: artifacts | |
- name: Move artifacts | |
run: yarn artifacts | |
shell: bash | |
- name: List packages | |
run: ls -R . | |
shell: bash | |
- name: Test bindings | |
if: startsWith(matrix.settings.target, 'aarch64') | |
run: | | |
yarn test | |
yarn electron electron.js | |
- name: Test bindings | |
if: startsWith(matrix.settings.target, 'x86_64') | |
run: yarn test | |
test-linux-x64-gnu-binding: | |
name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- '18' | |
- '20' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: yarn | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: bindings-x86_64-unknown-linux-gnu | |
path: artifacts | |
- name: Move artifacts | |
run: yarn artifacts | |
shell: bash | |
- name: List packages | |
run: ls -R . | |
shell: bash | |
- name: Test bindings | |
run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim yarn test | |
test-linux-x64-musl-binding: | |
name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- '18' | |
- '20' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: yarn | |
- name: Install dependencies | |
run: yarn install --immutable --mode=skip-build | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: bindings-x86_64-unknown-linux-musl | |
path: artifacts | |
- name: Move artifacts | |
run: yarn artifacts | |
shell: bash | |
- name: List packages | |
run: ls -R . | |
shell: bash | |
- name: Test bindings | |
run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-alpine yarn test | |
test-linux-aarch64-gnu-binding: | |
name: Test bindings on aarch64-unknown-linux-gnu - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- '20' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: bindings-aarch64-unknown-linux-gnu | |
path: artifacts | |
- name: Install dependencies | |
run: yarn install --immutable --mode=skip-build | |
- name: Move artifacts | |
run: yarn artifacts | |
shell: bash | |
- name: List packages | |
run: ls -R packages | |
shell: bash | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm64 | |
- run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
- name: Setup and run tests | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: node:${{ matrix.node }}-slim | |
options: '--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build' | |
run: yarn test | |
test-linux-arm-gnueabihf-binding: | |
name: Test bindings on armv7-unknown-linux-gnueabihf - node@${{ matrix.node }} | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
node: | |
- '18' | |
- '20' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: bindings-armv7-unknown-linux-gnueabihf | |
path: artifacts | |
- name: Install dependencies | |
run: yarn install --immutable --mode=skip-build | |
- name: Move artifacts | |
run: yarn artifacts | |
shell: bash | |
- name: List packages | |
run: ls -R packages | |
shell: bash | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm | |
- run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
- name: Setup and run tests | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: node:${{ matrix.node }}-bullseye-slim | |
options: '--platform linux/arm/v7 -v ${{ github.workspace }}:/build -w /build' | |
run: yarn test | |
test-wasi-on-nodejs: | |
name: Test wasi on Node.js | |
runs-on: macos-14 | |
needs: | |
- build | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: bindings-wasm32-wasi-preview1-threads | |
path: artifacts | |
- name: Install dependencies | |
run: yarn install --immutable --mode=skip-build | |
- name: Move artifacts | |
run: yarn artifacts | |
shell: bash | |
- name: List packages | |
run: ls -R packages | |
shell: bash | |
- name: Run tests | |
run: yarn test -s | |
env: | |
NAPI_RS_FORCE_WASI: '1' | |
publish: | |
name: Publish | |
runs-on: ubuntu-latest | |
needs: | |
- build-freebsd | |
- test-macOS-windows-binding | |
- test-linux-x64-gnu-binding | |
- test-linux-x64-musl-binding | |
- test-linux-aarch64-gnu-binding | |
- test-linux-arm-gnueabihf-binding | |
- test-wasi-on-nodejs | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: yarn | |
- name: Install dependencies | |
run: yarn install --immutable --mode=skip-build | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: artifacts | |
- name: Move artifacts | |
run: yarn artifacts | |
- name: List packages | |
run: ls -R ./packages | |
shell: bash | |
- name: Publish | |
if: "startsWith(github.event.head_commit.message, 'chore(release): publish')" | |
run: | | |
npm config set provenance true | |
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc | |
npx lerna publish from-package --no-verify-access --yes | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |