fix(deps): update rust crate infer to 0.19 (#985) #2254
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: 'skia' | |
MACOSX_DEPLOYMENT_TARGET: '10.13' | |
permissions: | |
contents: write | |
id-token: write | |
on: | |
push: | |
branches: | |
- main | |
tags-ignore: | |
- '**' | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: ${{ github.ref_name != 'main' }} | |
jobs: | |
lint: | |
name: Lint SourceCode | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/brooooooklyn/canvas/ubuntu-builder:jammy | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: 'yarn' | |
- name: Install | |
uses: ./.github/actions/setup-rust | |
with: | |
targets: x86_64-apple-darwin | |
components: clippy, rustfmt | |
- name: Install dependencies | |
run: yarn install --immutable --mode=skip-build | |
- name: Download skia binary | |
run: | | |
git config --global --add safe.directory $(pwd) | |
node ./scripts/release-skia-binary.mjs --download | |
- name: 'Lint JS/TS' | |
run: yarn lint | |
- name: Cargo fmt | |
run: cargo fmt -- --check | |
- name: Clippy | |
run: cargo clippy | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- host: macos-latest | |
target: 'x86_64-apple-darwin' | |
setup: brew install nasm | |
build: | | |
rustc --print target-cpus | |
clang --version | |
yarn build --target x86_64-apple-darwin | |
downloadTarget: '' | |
- host: windows-latest | |
setup: | | |
choco upgrade llvm | |
build: yarn build --target x86_64-pc-windows-msvc | |
target: 'x86_64-pc-windows-msvc' | |
downloadTarget: '' | |
- host: ubuntu-latest | |
target: 'x86_64-unknown-linux-gnu' | |
downloadTarget: '' | |
docker: ghcr.io/brooooooklyn/canvas/ubuntu-builder:jammy | |
build: yarn build --target x86_64-unknown-linux-gnu | |
- host: ubuntu-latest | |
downloadTarget: 'x86_64-unknown-linux-musl' | |
target: 'x86_64-unknown-linux-musl' | |
docker: ghcr.io/brooooooklyn/canvas/musl-builder:lts | |
build: >- | |
set -e && | |
apk add libc++-dev libc++-static && | |
cp /usr/lib/gcc/x86_64-alpine-linux-musl/14.2.0/*.o /usr/lib/ && | |
cp /usr/lib/gcc/x86_64-alpine-linux-musl/14.2.0/libgcc.a /usr/lib/ && | |
cp /usr/lib/gcc/x86_64-alpine-linux-musl/14.2.0/libgcc_eh.a /usr/lib/ && | |
wget "https://github.com/Brooooooklyn/canvas/releases/download/libcxxabi-$(cat llvm-version)/libc++abi-x86_64.a" && | |
mv libc++abi-x86_64.a /usr/lib/libc++abi.a && | |
CXXFLAGS="-std=c++20 -stdlib=libc++ -static -fPIC -fno-cxx-exceptions -fno-exceptions -I/usr/include/c++/v1" CC=clang CXX=clang++ yarn build --target x86_64-unknown-linux-musl | |
- host: macos-latest | |
downloadTarget: 'aarch64-apple-darwin' | |
target: 'aarch64-apple-darwin' | |
build: | | |
export MACOSX_DEPLOYMENT_TARGET='11.0' | |
clang --version | |
yarn build --target aarch64-apple-darwin | |
- host: ubuntu-latest | |
downloadTarget: 'aarch64-unknown-linux-gnu' | |
target: 'aarch64-unknown-linux-gnu' | |
docker: ghcr.io/brooooooklyn/canvas/ubuntu-builder:jammy-aarch64 | |
build: >- | |
set -e && | |
rustup target add aarch64-unknown-linux-gnu && | |
yarn build --target aarch64-unknown-linux-gnu | |
- host: ubuntu-24.04-arm | |
target: 'aarch64-unknown-linux-musl' | |
downloadTarget: 'aarch64-unknown-linux-musl' | |
docker: node:18-alpine | |
build: >- | |
set -e && | |
apk add musl-dev wget rustup bash python3 git build-base cmake perl clang llvm libc++-dev libc++-static llvm-libunwind-static tar xz ninja && | |
apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing gn perl meson && | |
wget "https://github.com/Brooooooklyn/canvas/releases/download/libcxxabi-$(cat llvm-version)/libc++abi-aarch64.a" && | |
mv libc++abi-aarch64.a /usr/lib/libc++abi.a && | |
cp /usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/*.o /usr/lib/ && | |
cp /usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/libgcc.a /usr/lib/ && | |
cp /usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/libgcc_eh.a /usr/lib/ && | |
export GN_EXE=gn && | |
rustup-init -y --default-host aarch64-unknown-linux-musl && | |
source "$HOME/.cargo/env" && | |
export CXXFLAGS="-std=c++20 -stdlib=libc++ -static -fPIC -fno-cxx-exceptions -fno-exceptions -I/usr/include/c++/v1" && | |
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-alpine-linux-musl-gcc && | |
CC=clang CXX=clang++ yarn build --target aarch64-unknown-linux-musl | |
- host: ubuntu-latest | |
target: 'aarch64-linux-android' | |
downloadTarget: 'aarch64-linux-android' | |
build: | | |
export CLANG_VERSION=`ls ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib/clang | sed 's/ *$//g'` | |
touch "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a" | |
chmod 777 "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a" | |
echo "INPUT(-lunwind)" > "${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/${CLANG_VERSION}/lib/linux/aarch64/libgcc.a" | |
export LDFLAGS="-fuse-ld=lld" | |
export CC=aarch64-linux-android24-clang | |
export CXX=aarch64-linux-android24-clang++ | |
export CMAKE_TOOLCHAIN_FILE_aarch64_linux_android="$(pwd)/cmake/android-determine.cmake" | |
yarn build --target aarch64-linux-android | |
- host: ubuntu-latest | |
target: 'riscv64gc-unknown-linux-gnu' | |
downloadTarget: 'riscv64gc-unknown-linux-gnu' | |
build: | | |
sudo apt-get update | |
sudo apt-get install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu -y | |
export CC=riscv64-linux-gnu-gcc | |
export CXX=riscv64-linux-gnu-g++ | |
yarn build --target riscv64gc-unknown-linux-gnu | |
name: stable - ${{ matrix.settings.target }} - node@20 | |
runs-on: ${{ matrix.settings.host }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: 'yarn' | |
- name: Set env | |
if: matrix.settings.host == 'windows-latest' | |
run: echo "C:\\msys64\\mingw64\\bin" >> $GITHUB_PATH | |
shell: bash | |
- name: Setup nasm | |
uses: ilammy/setup-nasm@v1 | |
if: matrix.settings.host == 'windows-latest' | |
- name: Install | |
uses: ./.github/actions/setup-rust | |
with: | |
targets: ${{ matrix.settings.target }} | |
- name: Install dependencies | |
run: yarn install --immutable --mode=skip-build | |
- name: Setup toolchain | |
run: ${{ matrix.settings.setup }} | |
if: ${{ matrix.settings.setup }} | |
- name: Download skia binary | |
run: node ./scripts/release-skia-binary.mjs --download --target=${{ matrix.settings.downloadTarget }} | |
- name: 'Build' | |
if: ${{ !matrix.settings.docker }} | |
run: ${{ matrix.settings.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: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: bindings-${{ matrix.settings.target }} | |
path: ${{ env.APP_NAME }}.*.node | |
build-armv7-linux-gnueabihf: | |
name: Build armv7-unknown-linux-gnueabihf | |
runs-on: ubuntu-latest | |
container: | |
image: debian:buster | |
steps: | |
- name: Setup tools | |
run: | | |
apt-get update | |
apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libatomic1-armhf-cross git build-essential cmake ninja-build wget curl gnupg | |
echo "deb http://apt.llvm.org/buster/ llvm-toolchain-buster-18 main" >> /etc/apt/sources.list | |
echo "deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-18 main" >> /etc/apt/sources.list | |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - | |
apt-get update | |
apt-get install -y clang-18 | |
ln -s /usr/bin/clang-18 /usr/bin/clang | |
ln -s /usr/bin/clang++-18 /usr/bin/clang++ | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install | |
uses: ./.github/actions/setup-rust | |
with: | |
targets: "armv7-unknown-linux-gnueabihf" | |
- name: Install dependencies | |
run: | | |
corepack enable | |
yarn install --immutable --mode=skip-build | |
- name: Download skia binary | |
run: | | |
git config --global --add safe.directory "$(pwd)" | |
git config --global --add safe.directory "$(pwd)/skia" | |
node ./scripts/release-skia-binary.mjs --download --target=armv7-unknown-linux-gnueabihf | |
- name: Build | |
run: | | |
export CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc | |
yarn build --target armv7-unknown-linux-gnueabihf | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: bindings-armv7-unknown-linux-gnueabihf | |
path: ${{ env.APP_NAME }}.*.node | |
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: macos-latest | |
target: 'aarch64-apple-darwin' | |
- host: windows-latest | |
target: 'x86_64-pc-windows-msvc' | |
node: ['18', '20', '22'] | |
runs-on: ${{ matrix.settings.host }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Download Apple Emoji font | |
uses: robinraju/release-downloader@v1 | |
with: | |
repository: 'PoomSmart/EmojiLibrary' | |
fileName: [email protected] | |
tag: '0.15.4' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
out-file-path: __test__/fonts/ | |
- 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 --mode=skip-build | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: bindings-${{ matrix.settings.target }} | |
path: . | |
- name: Download icudtl.dat | |
if: matrix.settings.host == 'windows-latest' | |
run: node ./scripts/release-skia-binary.mjs --download-icu | |
- name: Test bindings | |
run: yarn test:ci | |
- name: Test failed | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failure-images-${{ matrix.settings.target }}-${{ matrix.node }} | |
path: __test__/failure/** | |
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', '22'] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Apple Emoji font | |
uses: robinraju/release-downloader@v1 | |
with: | |
repository: 'PoomSmart/EmojiLibrary' | |
tag: '0.15.4' | |
fileName: [email protected] | |
token: ${{ secrets.GITHUB_TOKEN }} | |
out-file-path: __test__/fonts/ | |
- 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-gnu | |
path: . | |
- name: List packages | |
run: ls -R . | |
shell: bash | |
- name: Test bindings | |
run: docker run --rm -v $(pwd):/canvas -w /canvas node:${{ matrix.node }}-slim yarn test:ci | |
- name: Test failed | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failure-images-x86_64-unknown-linux-gnu-${{ matrix.node }} | |
path: __test__/failure/** | |
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', '22'] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Apple Emoji font | |
uses: robinraju/release-downloader@v1 | |
with: | |
repository: 'PoomSmart/EmojiLibrary' | |
fileName: [email protected] | |
tag: '0.15.4' | |
token: ${{ secrets.GITHUB_TOKEN }} | |
out-file-path: __test__/fonts/ | |
- 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 --immutable --mode=skip-build | |
- 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):/canvas -w /canvas node:${{ matrix.node }}-alpine yarn test:ci | |
- name: Test failed | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failure-images-x86_64-unknown-linux-musl-${{ matrix.node }} | |
path: __test__/failure/** | |
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', '22'] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Apple Emoji font | |
uses: robinraju/release-downloader@v1 | |
with: | |
repository: 'PoomSmart/EmojiLibrary' | |
tag: '0.15.4' | |
fileName: [email protected] | |
token: ${{ secrets.GITHUB_TOKEN }} | |
out-file-path: __test__/fonts/ | |
- 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 --immutable --mode=skip-build | |
- 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 }}:/skia -w /skia' | |
run: | | |
set -e && \ | |
yarn test:ci && \ | |
ls -la | |
- name: Test failed | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failure-images-aarch64-unknown-linux-gnu-${{ matrix.node }} | |
path: __test__/failure/** | |
test-linux-aarch64-musl-binding: | |
name: Test bindings on aarch64-unknown-linux-musl - node@lts | |
needs: | |
- build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Apple Emoji font | |
uses: robinraju/release-downloader@v1 | |
with: | |
repository: 'PoomSmart/EmojiLibrary' | |
tag: '0.15.4' | |
fileName: [email protected] | |
token: ${{ secrets.GITHUB_TOKEN }} | |
out-file-path: __test__/fonts/ | |
- 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 --immutable --mode=skip-build | |
- 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 }}:/skia -w /skia' | |
run: | | |
set -e | |
yarn test:ci | |
- name: Test failed | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failure-images-aarch64-unknown-linux-musl-lts | |
path: __test__/failure/** | |
test-linux-arm-gnueabihf-binding: | |
name: Test bindings on armv7-unknown-linux-gnueabihf - node@${{ matrix.node }} | |
needs: | |
- build-armv7-linux-gnueabihf | |
strategy: | |
fail-fast: false | |
matrix: | |
node: ['18', '20', '22'] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Apple Emoji font | |
uses: robinraju/release-downloader@v1 | |
with: | |
repository: 'PoomSmart/EmojiLibrary' | |
tag: '0.15.4' | |
fileName: [email protected] | |
token: ${{ secrets.GITHUB_TOKEN }} | |
out-file-path: __test__/fonts/ | |
- 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 --immutable --mode=skip-build | |
- 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 }}-bookworm-slim | |
options: '--platform linux/arm/v7 -v ${{ github.workspace }}:/skia -w /skia' | |
run: | | |
set -e && \ | |
yarn test:ci && \ | |
ls -la | |
- name: Test failed | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failure-images-armv7-unknown-linux-gnueabihf-${{ matrix.node }} | |
path: __test__/failure/** | |
rust-test: | |
name: stable - macOS - cargo - test | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install | |
uses: ./.github/actions/setup-rust | |
with: | |
targets: aarch64-apple-darwin | |
- name: Install dependencies | |
run: yarn install --immutable --mode=skip-build | |
- name: Install llvm | |
run: brew install llvm | |
- name: Download skia binary | |
run: node ./scripts/release-skia-binary.mjs --download | |
- name: Test | |
run: | | |
clang --version | |
cargo test -- --nocapture | |
bench: | |
name: Bench | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/brooooooklyn/canvas/ubuntu-builder:jammy | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: 'yarn' | |
- name: Install | |
uses: ./.github/actions/setup-rust | |
with: | |
targets: x86_64-unknown-linux-gnu | |
- name: Install dependencies | |
run: yarn install --immutable | |
- name: Download skia binary | |
run: | | |
git config --global --add safe.directory $(pwd) | |
node ./scripts/release-skia-binary.mjs --download | |
- name: 'Build' | |
run: yarn build | |
- name: 'Run benchmark' | |
run: yarn bench | |
publish: | |
name: Publish | |
runs-on: ubuntu-latest | |
needs: | |
- 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 | |
- test-macOS-windows-binding | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- 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: Download ICU for Windows | |
run: node ./scripts/release-skia-binary.mjs --download-icu | |
- name: List packages | |
run: ls -R ./npm | |
shell: bash | |
- name: Publish | |
run: | | |
npm config set provenance true | |
if git log -1 --pretty=%B | grep "^[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 "^[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 }} |