chore(deps): bump faster-hex from 0.6.1 to 0.8.1 #451
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: Build N-API | |
env: | |
DEBUG: napi:* | |
APP_NAME: rust-napi | |
MACOSX_DEPLOYMENT_TARGET: '10.13' | |
APP_DIR: napi | |
permissions: | |
actions: write | |
contents: write | |
'on': | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
- "gh-readonly-queue/**" | |
tags-ignore: | |
- '**' | |
paths-ignore: | |
- '**/*.md' | |
- LICENSE | |
- '**/*.gitignore' | |
- .editorconfig | |
- docs/** | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
if: '!contains(github.event.head_commit.message, ''skip ci'')' | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- host: macos-latest | |
target: x86_64-apple-darwin | |
architecture: x64 | |
build: | | |
cd $APP_DIR | |
yarn build | |
strip -x *.node | |
- host: windows-latest | |
build: | | |
cd $APP_DIR | |
yarn build | |
target: x86_64-pc-windows-msvc | |
architecture: x64 | |
- host: windows-latest | |
build: | | |
cd $APP_DIR | |
yarn build --target i686-pc-windows-msvc | |
target: i686-pc-windows-msvc | |
architecture: x86 | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian | |
build: |- | |
set -e && | |
rustup target add x86_64-unknown-linux-gnu && | |
yarn build --target x86_64-unknown-linux-gnu && | |
llvm-strip -x *.node | |
- host: ubuntu-latest | |
target: x86_64-unknown-linux-musl | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine | |
build: set -e && apk add perl && apk upgrade && yarn build && strip *.node | |
- host: macos-latest | |
target: aarch64-apple-darwin | |
build: | | |
cd $APP_DIR | |
sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*; | |
export CC=$(xcrun -f clang); | |
export CXX=$(xcrun -f clang++); | |
SYSROOT=$(xcrun --sdk macosx --show-sdk-path); | |
export CFLAGS="-isysroot $SYSROOT -isystem $SYSROOT"; | |
yarn build --target aarch64-apple-darwin | |
strip -x *.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 CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc && | |
export CC=aarch64-linux-gnu-gcc && | |
sudo apt update && | |
sudo apt install -y gcc-aarch64-linux-gnu && | |
rustup target add aarch64-unknown-linux-gnu && | |
yarn build --target aarch64-unknown-linux-gnu && | |
aarch64-unknown-linux-gnu-strip *.node | |
- host: ubuntu-latest | |
architecture: x64 | |
target: armv7-unknown-linux-gnueabihf | |
setup: | | |
sudo apt-get update | |
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y | |
build: | | |
cd $APP_DIR | |
yarn build --target=armv7-unknown-linux-gnueabihf | |
arm-linux-gnueabihf-strip *.node | |
- host: ubuntu-latest | |
architecture: x64 | |
target: aarch64-linux-android | |
build: | | |
cd $APP_DIR | |
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" | |
export CC="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang" | |
export CXX="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang++" | |
export AR="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar" | |
export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" | |
yarn build --target aarch64-linux-android | |
"${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip" *.node | |
- host: ubuntu-latest | |
target: armv7-linux-androideabi | |
build: | | |
cd $APP_DIR | |
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" | |
export CC="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang" | |
export CXX="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi24-clang++" | |
export AR="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar" | |
export PATH="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:${PATH}" | |
yarn build --target armv7-linux-androideabi | |
${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node | |
- host: ubuntu-latest | |
architecture: x64 | |
target: aarch64-unknown-linux-musl | |
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine | |
build: |- | |
set -e && | |
apk add perl && | |
apk upgrade && | |
rustup target add aarch64-unknown-linux-musl && | |
yarn build --target aarch64-unknown-linux-musl && | |
/aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node | |
- host: windows-latest | |
architecture: x64 | |
target: aarch64-pc-windows-msvc | |
build: | | |
cd $APP_DIR | |
yarn build --target aarch64-pc-windows-msvc | |
name: stable - ${{ matrix.settings.target }} - node@16 | |
runs-on: ${{ matrix.settings.host }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
if: ${{ !matrix.settings.docker }} | |
with: | |
node-version: 16 | |
check-latest: true | |
cache: yarn | |
cache-dependency-path: ${{ env.APP_DIR }}/yarn.lock | |
architecture: ${{ matrix.settings.architecture }} | |
- name: Install | |
uses: actions-rs/toolchain@v1 | |
if: ${{ !matrix.settings.docker }} | |
with: | |
profile: minimal | |
override: true | |
toolchain: stable | |
target: ${{ matrix.settings.target }} | |
- name: Cache cargo | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cargo/registry | |
key: ${{ matrix.settings.target }}-cargo-registry | |
- name: Cache cargo index | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cargo/git | |
key: ${{ matrix.settings.target }}-cargo-index | |
- name: Cache NPM dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.APP_DIR }}/node_modules | |
key: npm-cache-build-${{ matrix.settings.target }}-node@16 | |
- name: Setup toolchain | |
run: ${{ matrix.settings.setup }} | |
if: ${{ matrix.settings.setup }} | |
shell: bash | |
- name: Install dependencies | |
working-directory: ${{ env.APP_DIR }} | |
run: yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000 | |
- name: Build in docker | |
uses: addnab/docker-run-action@v3 | |
if: ${{ matrix.settings.docker }} | |
with: | |
image: ${{ matrix.settings.docker }} | |
options: '-v ${{ env.HOME }}/.cargo/git:/root/.cargo/git -v ${{ env.HOME }}/.cargo/registry:/root/.cargo/registry -v ${{ github.workspace }}:/build -w /build/${{ env.APP_DIR }}' | |
run: ${{ matrix.settings.build }} | |
- name: Build | |
run: ${{ matrix.settings.build }} | |
if: ${{ !matrix.settings.docker }} | |
shell: bash | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: bindings-${{ matrix.settings.target }} | |
path: ${{ env.APP_DIR }}/${{ env.APP_NAME }}.*.node | |
if-no-files-found: error | |
build-freebsd: | |
runs-on: macos-10.15 | |
name: stable - freebsd - node@16 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Build | |
id: build | |
uses: vmactions/[email protected] | |
env: | |
DEBUG: napi:* | |
RUSTUP_HOME: /usr/local/rustup | |
CARGO_HOME: /usr/local/cargo | |
RUSTUP_IO_THREADS: 1 | |
with: | |
envs: DEBUG RUSTUP_HOME CARGO_HOME RUSTUP_IO_THREADS APP_DIR | |
usesh: true | |
mem: 3000 | |
prepare: | | |
pkg install -y bash curl node14 python2 perl5 gmake | |
curl -qL https://www.npmjs.com/install.sh | sh | |
npm config set script-shell bash | |
npm install -g yarn | |
curl https://sh.rustup.rs -sSf --output rustup.sh | |
sh rustup.sh -y --profile minimal --default-toolchain stable | |
export PATH="/usr/local/cargo/bin:$PATH" | |
echo "~~~~ rustc --version ~~~~" | |
rustc --version | |
echo "~~~~ node -v ~~~~" | |
node -v | |
echo "~~~~ yarn --version ~~~~" | |
yarn --version | |
run: | | |
export PATH="/usr/local/cargo/bin:$PATH" | |
pwd | |
ls -lah | |
whoami | |
env | |
freebsd-version | |
cd $APP_DIR | |
yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000 | |
yarn build | |
strip -x *.node | |
rm -rf node_modules | |
rm -rf target | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: bindings-freebsd | |
path: ${{ env.APP_DIR }}/${{ env.APP_NAME }}.*.node | |
if-no-files-found: error | |
publish: | |
name: Publish | |
runs-on: ubuntu-latest | |
needs: | |
- build | |
- build-freebsd | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
check-latest: true | |
cache: yarn | |
cache-dependency-path: ${{ env.APP_DIR }}/yarn.lock | |
- name: Cache NPM dependencies | |
uses: actions/cache@v3 | |
with: | |
path: node_modules | |
key: npm-cache-ubuntu-latest-${{ hashFiles('yarn.lock') }} | |
restore-keys: | | |
npm-cache- | |
- name: Install dependencies | |
working-directory: ${{ env.APP_DIR }} | |
run: yarn install --ignore-scripts --frozen-lockfile --registry https://registry.npmjs.org --network-timeout 300000 | |
- name: Download all artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: ${{ env.APP_DIR }}/artifacts | |
- name: Move artifacts | |
working-directory: ${{ env.APP_DIR }} | |
run: yarn artifacts | |
- name: List packages | |
working-directory: ${{ env.APP_DIR }} | |
run: ls -R ./npm | |
shell: bash | |
- name: Publish | |
working-directory: ${{ env.APP_DIR }} | |
run: | | |
if git log -1 --pretty=%B | grep "^Release [0-9]\+\.[0-9]\+\.[0-9]\+$"; | |
then | |
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc | |
npm publish --access public | |
elif git log -1 --pretty=%B | grep "^Release [0-9]\+\.[0-9]\+\.[0-9]\+"; | |
then | |
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc | |
npm publish --tag next --access public | |
else | |
echo "Not a release, skipping publish" | |
fi | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |