improve CI for the Oxide build

This commit is contained in:
Robin Malfait 2022-11-25 15:44:43 +01:00 • committed by Adam Wathan
parent 33b553a0b0
commit 53b3891c52
21 changed files with 291 additions and 614 deletions

View file

@ -1,499 +1,276 @@
name: Oxide CI
env:
DEBUG: napi:*
APP_NAME: '@tailwindcss/oxide'
MACOSX_DEPLOYMENT_TARGET: '10.13'
on:
workflow_dispatch:
env:
APP_NAME: tailwindcss-oxide
NODE_VERSION: 14
OXIDE_LOCATION: ./oxide/crates/node
jobs:
build:
if: "!contains(github.event.head_commit.message, 'skip ci')"
oxide-build:
strategy:
fail-fast: false
matrix:
settings:
- host: macos-latest
target: x86_64-apple-darwin
build: |
yarn build
strip -x *.node
- host: windows-latest
build: yarn build
include:
# Windows
- os: windows-latest
target: x86_64-pc-windows-msvc
- host: windows-latest
build: |
yarn build --target i686-pc-windows-msvc
yarn test
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 &&
yarn build --target x86_64-unknown-linux-gnu &&
strip *.node
- host: ubuntu-latest
target: x86_64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: set -e && yarn build && strip *.node
- host: macos-latest
target: aarch64-apple-darwin
build: |
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 &&
yarn build --target aarch64-unknown-linux-gnu &&
aarch64-unknown-linux-gnu-strip *.node
- host: ubuntu-latest
target: armv7-unknown-linux-gnueabihf
setup: |
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y
build: |
yarn build --target=armv7-unknown-linux-gnueabihf
arm-linux-gnueabihf-strip *.node
- host: ubuntu-latest
target: aarch64-linux-android
build: |
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
export CC="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang"
export CXX="${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-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 aarch64-linux-android
${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node
- host: ubuntu-latest
target: armv7-linux-androideabi
build: |
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
target: aarch64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |-
set -e &&
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
target: aarch64-pc-windows-msvc
build: yarn build --target aarch64-pc-windows-msvc
name: stable - ${{ matrix.settings.target }} - node@16
runs-on: ${{ matrix.settings.host }}
# Mac OS
- os: macos-latest
target: x86_64-apple-darwin
strip: strip -x # Must use -x on macOS. This produces larger results on linux.
name: Build ${{ matrix.target }} (OXIDE)
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Setup node
- name: Install Node.JS
uses: actions/setup-node@v3
if: ${{ !matrix.settings.docker }}
with:
node-version: 16
check-latest: true
cache: yarn
- name: Install
node-version: ${{ env.NODE_VERSION }}
- name: Install Rust
uses: actions-rs/toolchain@v1
if: ${{ !matrix.settings.docker }}
with:
toolchain: stable
profile: minimal
override: true
toolchain: stable
target: ${{ matrix.settings.target }}
- name: Cache cargo
uses: actions/cache@v3
- name: Setup rust target
run: rustup target add ${{ matrix.target }}
# - name: Use cached oxide node_modules
# id: cache-oxide
# uses: actions/cache@v3
# with:
# path: ${{ env.OXIDE_LOCATION }}/node_modules
# key: nodeModules-${{ hashFiles('${{ env.OXIDE_LOCATION }}/package-lock.json') }}-${{ matrix.os }}-${{ matrix.target }}-${{ env.NODE_VERSION }}
# restore-keys: |
# nodeModules-
- name: Oxide — npm install
# if: steps.cache-oxide.outputs.cache-hit != 'true'
run: cd ${{ env.OXIDE_LOCATION }} && npm install
- name: Build release
run: cd ${{ env.OXIDE_LOCATION }} && npm run build
env:
RUST_TARGET: ${{ matrix.target }}
- name: Strip debug symbols # https://github.com/rust-lang/rust/issues/46034
if: ${{ matrix.strip }}
run: ${{ matrix.strip }} ${{ env.OXIDE_LOCATION }}/*.node
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bindings-${{ matrix.target }}
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
.cargo-cache
target/
key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }}
- name: Cache NPM dependencies
uses: actions/cache@v3
with:
path: .yarn/cache
key: npm-cache-build-${{ matrix.settings.target }}-node@16
- name: Setup toolchain
run: ${{ matrix.settings.setup }}
if: ${{ matrix.settings.setup }}
shell: bash
- name: Setup node x86
if: matrix.settings.target == 'i686-pc-windows-msvc'
run: yarn config set supportedArchitectures.cpu "ia32"
shell: bash
- name: Install dependencies
run: yarn install
- name: Setup node x86
${{ env.OXIDE_LOCATION }}/*.node
${{ matrix.binary }}
oxide-build-apple-silicon:
name: Build Apple Silicon (OXIDE)
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Install Node.JS
uses: actions/setup-node@v3
if: matrix.settings.target == 'i686-pc-windows-msvc'
with:
node-version: 16
check-latest: true
cache: yarn
architecture: x86
- name: Build in docker
uses: addnab/docker-run-action@v3
if: ${{ matrix.settings.docker }}
node-version: ${{ env.NODE_VERSION }}
- name: Install Rust
uses: actions-rs/toolchain@v1
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
toolchain: stable
profile: minimal
override: true
- name: Setup rust target
run: rustup target add aarch64-apple-darwin
# - name: Use cached oxide node_modules
# id: cache-oxide
# uses: actions/cache@v3
# with:
# path: ${{ env.OXIDE_LOCATION }}/node_modules
# key: nodeModules-${{ hashFiles('${{ env.OXIDE_LOCATION }}/package-lock.json') }}-macos-latest-apple-silicon-${{ env.NODE_VERSION }}
# restore-keys: |
# nodeModules-
- name: Oxide — npm install
# if: steps.cache-oxide.outputs.cache-hit != 'true'
run: cd ${{ env.OXIDE_LOCATION }} && npm install
- name: Build release
run: cd ${{ env.OXIDE_LOCATION }} && npm run build
env:
RUST_TARGET: aarch64-apple-darwin
JEMALLOC_SYS_WITH_LG_PAGE: 14
- name: Strip debug symbols # https://github.com/rust-lang/rust/issues/46034
run: strip -x ${{ env.OXIDE_LOCATION }}/*.node
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: bindings-${{ matrix.settings.target }}
path: ${{ env.APP_NAME }}.*.node
if-no-files-found: error
build-freebsd:
runs-on: macos-12
name: Build FreeBSD
name: bindings-aarch64-apple-darwin
path: |
${{ env.OXIDE_LOCATION }}/*.node
${{ env.APP_NAME }}
oxide-build-linux:
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-unknown-linux-gnu
strip: strip
image: docker.io/centos/nodejs-12-centos7
- target: aarch64-unknown-linux-gnu
strip: aarch64-linux-gnu-strip
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
setup: apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu -y
- target: armv7-unknown-linux-gnueabihf
strip: arm-linux-gnueabihf-strip
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
setup: apt install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf -y
- target: aarch64-unknown-linux-musl
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
strip: aarch64-linux-musl-strip
- target: x86_64-unknown-linux-musl
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
strip: strip
name: Build ${{ matrix.target }} (OXIDE)
runs-on: ubuntu-latest
container:
image: ${{ matrix.image }}
steps:
- uses: actions/checkout@v3
- name: Build
id: build
uses: vmactions/freebsd-vm@v0
env:
DEBUG: napi:*
RUSTUP_HOME: /usr/local/rustup
CARGO_HOME: /usr/local/cargo
RUSTUP_IO_THREADS: 1
- name: Install Node.JS
uses: actions/setup-node@v3
with:
envs: DEBUG RUSTUP_HOME CARGO_HOME RUSTUP_IO_THREADS
usesh: true
mem: 3000
prepare: |
pkg install -y curl node16 python2
curl -qL https://www.npmjs.com/install.sh | sh
npm install --location=global --ignore-scripts 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
yarn install
yarn build
strip -x *.node
yarn test
rm -rf node_modules
rm -rf target
- name: Upload artifact
node-version: ${{ env.NODE_VERSION }}
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: Setup cross compile toolchain
if: ${{ matrix.setup }}
run: ${{ matrix.setup }}
- name: Setup rust target
run: rustup target add ${{ matrix.target }}
# - name: Use cached oxide node_modules
# id: cache-oxide
# uses: actions/cache@v3
# with:
# path: ${{ env.OXIDE_LOCATION }}/node_modules
# key: nodeModules-${{ hashFiles('${{ env.OXIDE_LOCATION }}/package-lock.json') }}-linux-${{ matrix.target }}-${{ env.NODE_VERSION }}
# restore-keys: |
# nodeModules-
- name: Oxide — npm install
# if: steps.cache-oxide.outputs.cache-hit != 'true'
run: cd ${{ env.OXIDE_LOCATION }} && npm install
- name: Build release
run: cd ${{ env.OXIDE_LOCATION }} && npm run build
env:
RUST_TARGET: ${{ matrix.target }}
- name: Strip debug symbols # https://github.com/rust-lang/rust/issues/46034
if: ${{ matrix.strip }}
run: ${{ matrix.strip }} ${{ env.OXIDE_LOCATION }}/*.node
- name: Upload artifacts
uses: actions/upload-artifact@v3
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 }}
name: bindings-${{ matrix.target }}
path: |
${{ env.OXIDE_LOCATION }}/*.node
${{ env.APP_NAME }}
oxide-release:
runs-on: ubuntu-latest
name: Build and release
needs:
- build
strategy:
fail-fast: false
matrix:
settings:
- host: windows-latest
target: x86_64-pc-windows-msvc
node:
- '14'
- '16'
- '18'
runs-on: ${{ matrix.settings.host }}
- oxide-build
- oxide-build-linux
- oxide-build-apple-silicon
steps:
- uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
check-latest: true
cache: yarn
- name: Cache NPM dependencies
uses: actions/cache@v3
with:
path: .yarn/cache
key: npm-cache-test-${{ matrix.settings.target }}-${{ matrix.node }}-${{ hashFiles('yarn.lock') }}
- name: Install dependencies
run: yarn install
- uses: actions/checkout@v1
# - name: Use cached oxide node_modules
# id: cache-oxide
# uses: actions/cache@v3
# with:
# path: ${{ env.OXIDE_LOCATION }}/node_modules
# key: nodeModules-${{ hashFiles('${{ env.OXIDE_LOCATION }}/package-lock.json') }}-ubuntu-latest-${{ env.NODE_VERSION }}
# restore-keys: |
# nodeModules-
- name: Oxide — npm install
# if: steps.cache-oxide.outputs.cache-hit != 'true'
run: cd ${{ env.OXIDE_LOCATION }} && npm install
- name: Download artifacts
uses: actions/download-artifact@v3
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:
- '14'
- '16'
- '18'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
check-latest: true
cache: yarn
- name: Cache NPM dependencies
uses: actions/cache@v3
with:
path: .yarn/cache
key: npm-cache-test-linux-x64-gnu-${{ matrix.node }}
- name: Install dependencies
run: yarn install
- name: Download artifacts
uses: actions/download-artifact@v3
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:
- '14'
- '16'
- '18'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
check-latest: true
cache: yarn
- name: Cache NPM dependencies
uses: actions/cache@v3
with:
path: .yarn/cache
key: npm-cache-test-x86_64-unknown-linux-musl-${{ matrix.node }}
- name: Install dependencies
run: |
yarn config set supportedArchitectures.libc "musl"
yarn install
- name: Download artifacts
uses: actions/download-artifact@v3
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:
- '14'
- '16'
- '18'
runs-on: ubuntu-latest
steps:
- run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
- uses: actions/checkout@v3
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: bindings-aarch64-unknown-linux-gnu
path: .
- name: List packages
run: ls -R .
shell: bash
- name: Cache NPM dependencies
uses: actions/cache@v3
with:
path: .yarn/cache
key: npm-cache-test-linux-aarch64-gnu-${{ matrix.node }}
- name: Install dependencies
run: |
yarn config set supportedArchitectures.cpu "arm64"
yarn config set supportedArchitectures.libc "glibc"
yarn install
- name: Setup and run tests
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/napi-rs/napi-rs/nodejs:aarch64-${{ matrix.node }}
options: '-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:
- run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
- uses: actions/checkout@v3
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: bindings-aarch64-unknown-linux-musl
path: .
- name: List packages
run: ls -R .
shell: bash
- name: Cache NPM dependencies
uses: actions/cache@v3
with:
path: .yarn/cache
key: npm-cache-test-linux-aarch64-musl-${{ matrix.node }}
- name: Install dependencies
run: |
yarn config set supportedArchitectures.cpu "arm64"
yarn config set supportedArchitectures.libc "musl"
yarn install
- name: Setup and run tests
uses: addnab/docker-run-action@v3
with:
image: multiarch/alpine:aarch64-latest-stable
options: '-v ${{ github.workspace }}:/build -w /build'
run: |
set -e
apk add nodejs npm yarn
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:
- '14'
- '16'
- '18'
runs-on: ubuntu-latest
steps:
- run: docker run --rm --privileged multiarch/qemu-user-static:register --reset
- uses: actions/checkout@v3
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: bindings-armv7-unknown-linux-gnueabihf
path: .
- name: List packages
run: ls -R .
shell: bash
- name: Cache NPM dependencies
uses: actions/cache@v3
with:
path: .yarn/cache
key: npm-cache-test-linux-arm-gnueabihf-${{ matrix.node }}
- name: Install dependencies
run: |
yarn config set supportedArchitectures.cpu "arm"
yarn install
- name: Setup and run tests
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/napi-rs/napi-rs/nodejs:armhf-${{ matrix.node }}
options: '-v ${{ github.workspace }}:/build -w /build'
run: |
set -e
yarn test
ls -la
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-aarch64-musl-binding
- test-linux-arm-gnueabihf-binding
steps:
- uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 16
check-latest: true
cache: yarn
- name: Cache NPM dependencies
uses: actions/cache@v3
with:
path: .yarn/cache
key: npm-cache-ubuntu-latest-publish
- name: Install dependencies
run: yarn install
- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: artifacts
- name: Move artifacts
run: yarn artifacts
- name: List packages
run: ls -R ./npm
shell: bash
- name: Publish
run: |
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
path: ${{ env.OXIDE_LOCATION }}
- run: echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > ~/.npmrc
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Move artifacts
run: |
cd ${{ env.OXIDE_LOCATION }}
cp bindings-aarch64-apple-darwin/oxide/crates/node/* ./npm/darwin-arm64/
cp bindings-aarch64-unknown-linux-gnu/oxide/crates/node/* ./npm/linux-arm64-gnu/
cp bindings-aarch64-unknown-linux-musl/oxide/crates/node/* ./npm/linux-arm64-musl/
cp bindings-armv7-unknown-linux-gnueabihf/oxide/crates/node/* ./npm/linux-arm-gnueabihf/
cp bindings-x86_64-apple-darwin/* ./npm/darwin-x64/
cp bindings-x86_64-pc-windows-msvc/* ./npm/win32-x64-msvc/
cp bindings-x86_64-unknown-linux-gnu/oxide/crates/node/* ./npm/linux-x64-gnu/
cp bindings-x86_64-unknown-linux-musl/oxide/crates/node/* ./npm/linux-x64-musl/
- name: Resolve version
id: vars
run: |
echo "NPM_VERSION=0.0.0-insiders.$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Generate entry point
run: npm run build --prefix ${{ env.OXIDE_LOCATION }}
- name: Publish to npm
run: |
for pkg in ${{ env.OXIDE_LOCATION }}/npm/*; do
echo "Publishing $pkg..."
cd $pkg
npm version ${{ env.NPM_VERSION }} --force --no-git-tag-version
npm publish --tag insiders --access public
cd -
done
echo "Publishing ${{ env.APP_NAME }}...";
cd ${{ env.OXIDE_LOCATION }}
npm version ${{ env.NPM_VERSION }} --force --no-git-tag-version
sed "s#\"0.0.0\"#\"${{ env.NPM_VERSION }}\"#g" package.json > package_updated.json
mv package_updated.json package.json
npm publish --tag insiders --access public
cd -
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View file

@ -1,3 +0,0 @@
# `@tailwindcss/oxide-android-arm-eabi`
This is the **armv7-linux-androideabi** binary for `@tailwindcss/oxide`

View file

@ -1,18 +0,0 @@
{
"name": "@tailwindcss/oxide-android-arm-eabi",
"version": "0.0.0",
"os": [
"android"
],
"cpu": [
"arm"
],
"main": "@tailwindcss/oxide.android-arm-eabi.node",
"files": [
"@tailwindcss/oxide.android-arm-eabi.node"
],
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -1,3 +0,0 @@
# `@tailwindcss/oxide-android-arm64`
This is the **aarch64-linux-android** binary for `@tailwindcss/oxide`

View file

@ -1,18 +0,0 @@
{
"name": "@tailwindcss/oxide-android-arm64",
"version": "0.0.0",
"os": [
"android"
],
"cpu": [
"arm64"
],
"main": "@tailwindcss/oxide.android-arm64.node",
"files": [
"@tailwindcss/oxide.android-arm64.node"
],
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -7,9 +7,9 @@
"cpu": [
"arm64"
],
"main": "@tailwindcss/oxide.darwin-arm64.node",
"main": "tailwindcss-oxide.darwin-arm64.node",
"files": [
"@tailwindcss/oxide.darwin-arm64.node"
"tailwindcss-oxide.darwin-arm64.node"
],
"license": "MIT",
"engines": {

View file

@ -7,9 +7,9 @@
"cpu": [
"x64"
],
"main": "@tailwindcss/oxide.darwin-x64.node",
"main": "tailwindcss-oxide.darwin-x64.node",
"files": [
"@tailwindcss/oxide.darwin-x64.node"
"tailwindcss-oxide.darwin-x64.node"
],
"license": "MIT",
"engines": {

View file

@ -7,9 +7,9 @@
"cpu": [
"x64"
],
"main": "@tailwindcss/oxide.freebsd-x64.node",
"main": "tailwindcss-oxide.freebsd-x64.node",
"files": [
"@tailwindcss/oxide.freebsd-x64.node"
"tailwindcss-oxide.freebsd-x64.node"
],
"license": "MIT",
"engines": {

View file

@ -7,9 +7,9 @@
"cpu": [
"arm"
],
"main": "@tailwindcss/oxide.linux-arm-gnueabihf.node",
"main": "tailwindcss-oxide.linux-arm-gnueabihf.node",
"files": [
"@tailwindcss/oxide.linux-arm-gnueabihf.node"
"tailwindcss-oxide.linux-arm-gnueabihf.node"
],
"license": "MIT",
"engines": {

View file

@ -7,9 +7,9 @@
"cpu": [
"arm64"
],
"main": "@tailwindcss/oxide.linux-arm64-gnu.node",
"main": "tailwindcss-oxide.linux-arm64-gnu.node",
"files": [
"@tailwindcss/oxide.linux-arm64-gnu.node"
"tailwindcss-oxide.linux-arm64-gnu.node"
],
"license": "MIT",
"engines": {

View file

@ -7,9 +7,9 @@
"cpu": [
"arm64"
],
"main": "@tailwindcss/oxide.linux-arm64-musl.node",
"main": "tailwindcss-oxide.linux-arm64-musl.node",
"files": [
"@tailwindcss/oxide.linux-arm64-musl.node"
"tailwindcss-oxide.linux-arm64-musl.node"
],
"license": "MIT",
"engines": {

View file

@ -7,9 +7,9 @@
"cpu": [
"x64"
],
"main": "@tailwindcss/oxide.linux-x64-gnu.node",
"main": "tailwindcss-oxide.linux-x64-gnu.node",
"files": [
"@tailwindcss/oxide.linux-x64-gnu.node"
"tailwindcss-oxide.linux-x64-gnu.node"
],
"license": "MIT",
"engines": {

View file

@ -7,9 +7,9 @@
"cpu": [
"x64"
],
"main": "@tailwindcss/oxide.linux-x64-musl.node",
"main": "tailwindcss-oxide.linux-x64-musl.node",
"files": [
"@tailwindcss/oxide.linux-x64-musl.node"
"tailwindcss-oxide.linux-x64-musl.node"
],
"license": "MIT",
"engines": {

View file

@ -1,3 +0,0 @@
# `@tailwindcss/oxide-win32-arm64-msvc`
This is the **aarch64-pc-windows-msvc** binary for `@tailwindcss/oxide`

View file

@ -1,18 +0,0 @@
{
"name": "@tailwindcss/oxide-win32-arm64-msvc",
"version": "0.0.0",
"os": [
"win32"
],
"cpu": [
"arm64"
],
"main": "@tailwindcss/oxide.win32-arm64-msvc.node",
"files": [
"@tailwindcss/oxide.win32-arm64-msvc.node"
],
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -1,3 +0,0 @@
# `@tailwindcss/oxide-win32-ia32-msvc`
This is the **i686-pc-windows-msvc** binary for `@tailwindcss/oxide`

View file

@ -1,18 +0,0 @@
{
"name": "@tailwindcss/oxide-win32-ia32-msvc",
"version": "0.0.0",
"os": [
"win32"
],
"cpu": [
"ia32"
],
"main": "@tailwindcss/oxide.win32-ia32-msvc.node",
"files": [
"@tailwindcss/oxide.win32-ia32-msvc.node"
],
"license": "MIT",
"engines": {
"node": ">= 10"
}
}

View file

@ -7,9 +7,9 @@
"cpu": [
"x64"
],
"main": "@tailwindcss/oxide.win32-x64-msvc.node",
"main": "tailwindcss-oxide.win32-x64-msvc.node",
"files": [
"@tailwindcss/oxide.win32-x64-msvc.node"
"tailwindcss-oxide.win32-x64-msvc.node"
],
"license": "MIT",
"engines": {

View file

@ -15,8 +15,6 @@
"node": ">= 10"
},
"optionalDependencies": {
"@tailwindcss/oxide-android-arm-eabi": "0.0.0",
"@tailwindcss/oxide-android-arm64": "0.0.0",
"@tailwindcss/oxide-darwin-arm64": "0.0.0",
"@tailwindcss/oxide-darwin-x64": "0.0.0",
"@tailwindcss/oxide-freebsd-x64": "0.0.0",
@ -25,8 +23,6 @@
"@tailwindcss/oxide-linux-arm64-musl": "0.0.0",
"@tailwindcss/oxide-linux-x64-gnu": "0.0.0",
"@tailwindcss/oxide-linux-x64-musl": "0.0.0",
"@tailwindcss/oxide-win32-arm64-msvc": "0.0.0",
"@tailwindcss/oxide-win32-ia32-msvc": "0.0.0",
"@tailwindcss/oxide-win32-x64-msvc": "0.0.0"
}
},

View file

@ -4,19 +4,16 @@
"main": "index.js",
"types": "index.d.ts",
"napi": {
"name": "@tailwindcss/oxide",
"name": "tailwindcss-oxide",
"triples": {
"additional": [
"aarch64-apple-darwin",
"aarch64-linux-android",
"aarch64-unknown-linux-gnu",
"aarch64-unknown-linux-musl",
"aarch64-pc-windows-msvc",
"armv7-unknown-linux-gnueabihf",
"x86_64-unknown-linux-musl",
"x86_64-unknown-freebsd",
"i686-pc-windows-msvc",
"armv7-linux-androideabi"
"i686-pc-windows-msvc"
]
}
},
@ -27,16 +24,17 @@
"engines": {
"node": ">= 10"
},
"files": [
"index.js",
"index.d.ts"
],
"scripts": {
"artifacts": "napi artifacts",
"build": "napi build --platform --release",
"build:debug": "napi build --platform",
"prepublishOnly": "napi prepublish -t npm",
"version": "napi version"
},
"optionalDependencies": {
"@tailwindcss/oxide-android-arm-eabi": "0.0.0",
"@tailwindcss/oxide-android-arm64": "0.0.0",
"@tailwindcss/oxide-darwin-arm64": "0.0.0",
"@tailwindcss/oxide-darwin-x64": "0.0.0",
"@tailwindcss/oxide-freebsd-x64": "0.0.0",
@ -45,8 +43,6 @@
"@tailwindcss/oxide-linux-arm64-musl": "0.0.0",
"@tailwindcss/oxide-linux-x64-gnu": "0.0.0",
"@tailwindcss/oxide-linux-x64-musl": "0.0.0",
"@tailwindcss/oxide-win32-arm64-msvc": "0.0.0",
"@tailwindcss/oxide-win32-ia32-msvc": "0.0.0",
"@tailwindcss/oxide-win32-x64-msvc": "0.0.0"
}
}
}

62
package-lock.json generated
View file

@ -1308,9 +1308,9 @@
}
},
"node_modules/@napi-rs/cli": {
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.12.0.tgz",
"integrity": "sha512-DWx9jDpun9JqDBypiXKjcYMm7gEnh83bry7b6UkItpmVE3w3tNrj91fOEPKDbFQZ7EULfFt+aQBbqtUHq5oNzQ==",
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.13.0.tgz",
"integrity": "sha512-8U6TLh2PYXM2SX7HnpRBCqlPU48M9tRe0TLlb4qgUx61bt6PT6Qtdeho3e0ila70fnrbqCA6dnJWrbgbJIopcQ==",
"dev": true,
"bin": {
"napi": "scripts/index.js"
@ -7033,29 +7033,25 @@
"extraneous": true
},
"oxide/crates/node": {
"name": "tailwind-oxide",
"name": "@tailwindcss/oxide",
"version": "0.0.0",
"license": "MIT",
"devDependencies": {
"@napi-rs/cli": "^2.12.0"
"@napi-rs/cli": "^2.13.0"
},
"engines": {
"node": ">= 10"
},
"optionalDependencies": {
"tailwind-oxide-android-arm-eabi": "0.0.0",
"tailwind-oxide-android-arm64": "0.0.0",
"tailwind-oxide-darwin-arm64": "0.0.0",
"tailwind-oxide-darwin-x64": "0.0.0",
"tailwind-oxide-freebsd-x64": "0.0.0",
"tailwind-oxide-linux-arm-gnueabihf": "0.0.0",
"tailwind-oxide-linux-arm64-gnu": "0.0.0",
"tailwind-oxide-linux-arm64-musl": "0.0.0",
"tailwind-oxide-linux-x64-gnu": "0.0.0",
"tailwind-oxide-linux-x64-musl": "0.0.0",
"tailwind-oxide-win32-arm64-msvc": "0.0.0",
"tailwind-oxide-win32-ia32-msvc": "0.0.0",
"tailwind-oxide-win32-x64-msvc": "0.0.0"
"@tailwindcss/oxide-darwin-arm64": "0.0.0",
"@tailwindcss/oxide-darwin-x64": "0.0.0",
"@tailwindcss/oxide-freebsd-x64": "0.0.0",
"@tailwindcss/oxide-linux-arm-gnueabihf": "0.0.0",
"@tailwindcss/oxide-linux-arm64-gnu": "0.0.0",
"@tailwindcss/oxide-linux-arm64-musl": "0.0.0",
"@tailwindcss/oxide-linux-x64-gnu": "0.0.0",
"@tailwindcss/oxide-linux-x64-musl": "0.0.0",
"@tailwindcss/oxide-win32-x64-msvc": "0.0.0"
}
}
},
@ -8045,9 +8041,9 @@
}
},
"@napi-rs/cli": {
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.12.0.tgz",
"integrity": "sha512-DWx9jDpun9JqDBypiXKjcYMm7gEnh83bry7b6UkItpmVE3w3tNrj91fOEPKDbFQZ7EULfFt+aQBbqtUHq5oNzQ==",
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/@napi-rs/cli/-/cli-2.13.0.tgz",
"integrity": "sha512-8U6TLh2PYXM2SX7HnpRBCqlPU48M9tRe0TLlb4qgUx61bt6PT6Qtdeho3e0ila70fnrbqCA6dnJWrbgbJIopcQ==",
"dev": true
},
"@nodelib/fs.scandir": {
@ -11915,20 +11911,16 @@
"tailwind-oxide": {
"version": "file:oxide/crates/node",
"requires": {
"@napi-rs/cli": "^2.12.0",
"tailwind-oxide-android-arm-eabi": "0.0.0",
"tailwind-oxide-android-arm64": "0.0.0",
"tailwind-oxide-darwin-arm64": "0.0.0",
"tailwind-oxide-darwin-x64": "0.0.0",
"tailwind-oxide-freebsd-x64": "0.0.0",
"tailwind-oxide-linux-arm-gnueabihf": "0.0.0",
"tailwind-oxide-linux-arm64-gnu": "0.0.0",
"tailwind-oxide-linux-arm64-musl": "0.0.0",
"tailwind-oxide-linux-x64-gnu": "0.0.0",
"tailwind-oxide-linux-x64-musl": "0.0.0",
"tailwind-oxide-win32-arm64-msvc": "0.0.0",
"tailwind-oxide-win32-ia32-msvc": "0.0.0",
"tailwind-oxide-win32-x64-msvc": "0.0.0"
"@napi-rs/cli": "^2.13.0",
"@tailwindcss/oxide-darwin-arm64": "0.0.0",
"@tailwindcss/oxide-darwin-x64": "0.0.0",
"@tailwindcss/oxide-freebsd-x64": "0.0.0",
"@tailwindcss/oxide-linux-arm-gnueabihf": "0.0.0",
"@tailwindcss/oxide-linux-arm64-gnu": "0.0.0",
"@tailwindcss/oxide-linux-arm64-musl": "0.0.0",
"@tailwindcss/oxide-linux-x64-gnu": "0.0.0",
"@tailwindcss/oxide-linux-x64-musl": "0.0.0",
"@tailwindcss/oxide-win32-x64-msvc": "0.0.0"
}
},
"terminal-link": {