diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 796ed78..b00523f 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -44,9 +44,9 @@ jobs: # target: x86_64-unknown-linux-musl # docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine # build: yarn build --target x86_64-unknown-linux-musl -# - host: macos-latest -# target: aarch64-apple-darwin -# build: yarn build --target aarch64-apple-darwin + - host: macos-latest + target: aarch64-apple-darwin + build: yarn build --target aarch64-apple-darwin # - host: ubuntu-latest # target: aarch64-unknown-linux-gnu # docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 @@ -146,263 +146,263 @@ jobs: name: bindings-${{ matrix.settings.target }} path: ${{ env.APP_NAME }}.*.node if-no-files-found: error - build-freebsd: - runs-on: macos-13 - name: Build FreeBSD - steps: - - uses: actions/checkout@v4 - - name: Build - id: build - uses: cross-platform-actions/action@v0.24.0 - env: - DEBUG: napi:* - 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: | - sudo pkg install -y -f curl node libnghttp2 npm - sudo npm install -g yarn --ignore-scripts - curl https://sh.rustup.rs -sSf --output rustup.sh - sh rustup.sh -y --profile minimal --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 - yarn build - yarn test - rm -rf node_modules - rm -rf target - rm -rf .yarn/cache - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: bindings-freebsd - path: ${{ env.APP_NAME }}.*.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: macos-latest - target: x86_64-apple-darwin - - host: windows-latest - target: x86_64-pc-windows-msvc - node: - - '18' - - '20' - runs-on: ${{ matrix.settings.host }} - steps: - - uses: actions/checkout@v4 - - name: Setup node - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node }} - cache: yarn - architecture: x64 - - name: Install dependencies - run: yarn install - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - name: bindings-${{ matrix.settings.target }} - path: . - - name: List packages - run: ls -R . - shell: bash - - name: Test bindings - 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 - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - name: bindings-x86_64-unknown-linux-gnu - path: . - - 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 config set supportedArchitectures.libc "musl" - yarn install - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - name: bindings-x86_64-unknown-linux-musl - path: . - - 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: - - '18' - - '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: . - - name: List packages - run: ls -R . - shell: bash - - name: Install dependencies - run: | - yarn config set supportedArchitectures.cpu "arm64" - yarn config set supportedArchitectures.libc "glibc" - yarn install - - 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: | - set -e - yarn test - ls -la - test-linux-aarch64-musl-binding: - name: Test bindings on aarch64-unknown-linux-musl - node@${{ matrix.node }} - needs: - - build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - name: bindings-aarch64-unknown-linux-musl - path: . - - name: List packages - run: ls -R . - shell: bash - - name: Install dependencies - run: | - yarn config set supportedArchitectures.cpu "arm64" - yarn config set supportedArchitectures.libc "musl" - yarn install - - 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:lts-alpine - options: '--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build' - run: | - set -e - 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: . - - name: List packages - run: ls -R . - shell: bash - - name: Install dependencies - run: | - yarn config set supportedArchitectures.cpu "arm" - yarn install - - 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: | - set -e - yarn test - ls -la +# build-freebsd: +# runs-on: macos-13 +# name: Build FreeBSD +# steps: +# - uses: actions/checkout@v4 +# - name: Build +# id: build +# uses: cross-platform-actions/action@v0.24.0 +# env: +# DEBUG: napi:* +# 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: | +# sudo pkg install -y -f curl node libnghttp2 npm +# sudo npm install -g yarn --ignore-scripts +# curl https://sh.rustup.rs -sSf --output rustup.sh +# sh rustup.sh -y --profile minimal --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 +# yarn build +# yarn test +# rm -rf node_modules +# rm -rf target +# rm -rf .yarn/cache +# - name: Upload artifact +# uses: actions/upload-artifact@v4 +# with: +# name: bindings-freebsd +# path: ${{ env.APP_NAME }}.*.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: macos-latest +# target: x86_64-apple-darwin +# - host: windows-latest +# target: x86_64-pc-windows-msvc +# node: +# - '18' +# - '20' +# runs-on: ${{ matrix.settings.host }} +# steps: +# - uses: actions/checkout@v4 +# - name: Setup node +# uses: actions/setup-node@v4 +# with: +# node-version: ${{ matrix.node }} +# cache: yarn +# architecture: x64 +# - name: Install dependencies +# run: yarn install +# - name: Download artifacts +# uses: actions/download-artifact@v4 +# with: +# name: bindings-${{ matrix.settings.target }} +# path: . +# - name: List packages +# run: ls -R . +# shell: bash +# - name: Test bindings +# 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 +# - name: Download artifacts +# uses: actions/download-artifact@v4 +# with: +# name: bindings-x86_64-unknown-linux-gnu +# path: . +# - 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 config set supportedArchitectures.libc "musl" +# yarn install +# - name: Download artifacts +# uses: actions/download-artifact@v4 +# with: +# name: bindings-x86_64-unknown-linux-musl +# path: . +# - 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: +# - '18' +# - '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: . +# - name: List packages +# run: ls -R . +# shell: bash +# - name: Install dependencies +# run: | +# yarn config set supportedArchitectures.cpu "arm64" +# yarn config set supportedArchitectures.libc "glibc" +# yarn install +# - 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: | +# set -e +# yarn test +# ls -la +# test-linux-aarch64-musl-binding: +# name: Test bindings on aarch64-unknown-linux-musl - node@${{ matrix.node }} +# needs: +# - build +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v4 +# - name: Download artifacts +# uses: actions/download-artifact@v4 +# with: +# name: bindings-aarch64-unknown-linux-musl +# path: . +# - name: List packages +# run: ls -R . +# shell: bash +# - name: Install dependencies +# run: | +# yarn config set supportedArchitectures.cpu "arm64" +# yarn config set supportedArchitectures.libc "musl" +# yarn install +# - 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:lts-alpine +# options: '--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build' +# run: | +# set -e +# 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: . +# - name: List packages +# run: ls -R . +# shell: bash +# - name: Install dependencies +# run: | +# yarn config set supportedArchitectures.cpu "arm" +# yarn install +# - 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: | +# set -e +# yarn test +# ls -la universal-macOS: name: Build universal macOS binary needs: @@ -439,13 +439,13 @@ jobs: 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-aarch64-musl-binding - - test-linux-arm-gnueabihf-binding +# - build-freebsd +# - test-macOS-windows-binding +# - test-linux-x64-gnu-binding +# - test-linux-x64-musl-binding +# - test-linux-aarch64-gnu-binding +# - test-linux-aarch64-musl-binding +# - test-linux-arm-gnueabihf-binding - universal-macOS steps: - uses: actions/checkout@v4