From efb6015641f92268ef29d16c8964fc603e229f89 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Fri, 25 Nov 2022 15:44:43 +0100 Subject: [PATCH] improve CI for the Oxide build --- .github/workflows/oxide-ci.yml | 701 ++++++------------ .../node/npm/android-arm-eabi/README.md | 3 - .../node/npm/android-arm-eabi/package.json | 18 - oxide/crates/node/npm/android-arm64/README.md | 3 - .../node/npm/android-arm64/package.json | 18 - .../crates/node/npm/darwin-arm64/package.json | 4 +- oxide/crates/node/npm/darwin-x64/package.json | 4 +- .../crates/node/npm/freebsd-x64/package.json | 4 +- .../node/npm/linux-arm-gnueabihf/package.json | 4 +- .../node/npm/linux-arm64-gnu/package.json | 4 +- .../node/npm/linux-arm64-musl/package.json | 4 +- .../node/npm/linux-x64-gnu/package.json | 4 +- .../node/npm/linux-x64-musl/package.json | 4 +- .../node/npm/win32-arm64-msvc/README.md | 3 - .../node/npm/win32-arm64-msvc/package.json | 18 - .../crates/node/npm/win32-ia32-msvc/README.md | 3 - .../node/npm/win32-ia32-msvc/package.json | 18 - .../node/npm/win32-x64-msvc/package.json | 4 +- oxide/crates/node/package-lock.json | 4 - oxide/crates/node/package.json | 18 +- package-lock.json | 8 - 21 files changed, 264 insertions(+), 587 deletions(-) delete mode 100644 oxide/crates/node/npm/android-arm-eabi/README.md delete mode 100644 oxide/crates/node/npm/android-arm-eabi/package.json delete mode 100644 oxide/crates/node/npm/android-arm64/README.md delete mode 100644 oxide/crates/node/npm/android-arm64/package.json delete mode 100644 oxide/crates/node/npm/win32-arm64-msvc/README.md delete mode 100644 oxide/crates/node/npm/win32-arm64-msvc/package.json delete mode 100644 oxide/crates/node/npm/win32-ia32-msvc/README.md delete mode 100644 oxide/crates/node/npm/win32-ia32-msvc/package.json diff --git a/.github/workflows/oxide-ci.yml b/.github/workflows/oxide-ci.yml index e95eef5f6..f8e2b868a 100644 --- a/.github/workflows/oxide-ci.yml +++ b/.github/workflows/oxide-ci.yml @@ -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 }} diff --git a/oxide/crates/node/npm/android-arm-eabi/README.md b/oxide/crates/node/npm/android-arm-eabi/README.md deleted file mode 100644 index b3c961023..000000000 --- a/oxide/crates/node/npm/android-arm-eabi/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@tailwindcss/oxide-android-arm-eabi` - -This is the **armv7-linux-androideabi** binary for `@tailwindcss/oxide` diff --git a/oxide/crates/node/npm/android-arm-eabi/package.json b/oxide/crates/node/npm/android-arm-eabi/package.json deleted file mode 100644 index 6a4f222b2..000000000 --- a/oxide/crates/node/npm/android-arm-eabi/package.json +++ /dev/null @@ -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" - } -} \ No newline at end of file diff --git a/oxide/crates/node/npm/android-arm64/README.md b/oxide/crates/node/npm/android-arm64/README.md deleted file mode 100644 index cd2e0ba79..000000000 --- a/oxide/crates/node/npm/android-arm64/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@tailwindcss/oxide-android-arm64` - -This is the **aarch64-linux-android** binary for `@tailwindcss/oxide` diff --git a/oxide/crates/node/npm/android-arm64/package.json b/oxide/crates/node/npm/android-arm64/package.json deleted file mode 100644 index 22bb5ef3c..000000000 --- a/oxide/crates/node/npm/android-arm64/package.json +++ /dev/null @@ -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" - } -} \ No newline at end of file diff --git a/oxide/crates/node/npm/darwin-arm64/package.json b/oxide/crates/node/npm/darwin-arm64/package.json index adac6c9b5..40b814b21 100644 --- a/oxide/crates/node/npm/darwin-arm64/package.json +++ b/oxide/crates/node/npm/darwin-arm64/package.json @@ -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": { diff --git a/oxide/crates/node/npm/darwin-x64/package.json b/oxide/crates/node/npm/darwin-x64/package.json index a9be63a87..bdb305a42 100644 --- a/oxide/crates/node/npm/darwin-x64/package.json +++ b/oxide/crates/node/npm/darwin-x64/package.json @@ -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": { diff --git a/oxide/crates/node/npm/freebsd-x64/package.json b/oxide/crates/node/npm/freebsd-x64/package.json index 4292dcfe4..77d5a8786 100644 --- a/oxide/crates/node/npm/freebsd-x64/package.json +++ b/oxide/crates/node/npm/freebsd-x64/package.json @@ -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": { diff --git a/oxide/crates/node/npm/linux-arm-gnueabihf/package.json b/oxide/crates/node/npm/linux-arm-gnueabihf/package.json index 0a1417e5d..f0d06e549 100644 --- a/oxide/crates/node/npm/linux-arm-gnueabihf/package.json +++ b/oxide/crates/node/npm/linux-arm-gnueabihf/package.json @@ -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": { diff --git a/oxide/crates/node/npm/linux-arm64-gnu/package.json b/oxide/crates/node/npm/linux-arm64-gnu/package.json index ffd2850c4..2a89c4e43 100644 --- a/oxide/crates/node/npm/linux-arm64-gnu/package.json +++ b/oxide/crates/node/npm/linux-arm64-gnu/package.json @@ -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": { diff --git a/oxide/crates/node/npm/linux-arm64-musl/package.json b/oxide/crates/node/npm/linux-arm64-musl/package.json index 5570dc146..cf1f75215 100644 --- a/oxide/crates/node/npm/linux-arm64-musl/package.json +++ b/oxide/crates/node/npm/linux-arm64-musl/package.json @@ -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": { diff --git a/oxide/crates/node/npm/linux-x64-gnu/package.json b/oxide/crates/node/npm/linux-x64-gnu/package.json index 2d53cacc0..a5e0c4e37 100644 --- a/oxide/crates/node/npm/linux-x64-gnu/package.json +++ b/oxide/crates/node/npm/linux-x64-gnu/package.json @@ -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": { diff --git a/oxide/crates/node/npm/linux-x64-musl/package.json b/oxide/crates/node/npm/linux-x64-musl/package.json index 2f255bfe2..c913ee2cf 100644 --- a/oxide/crates/node/npm/linux-x64-musl/package.json +++ b/oxide/crates/node/npm/linux-x64-musl/package.json @@ -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": { diff --git a/oxide/crates/node/npm/win32-arm64-msvc/README.md b/oxide/crates/node/npm/win32-arm64-msvc/README.md deleted file mode 100644 index 199b98b8e..000000000 --- a/oxide/crates/node/npm/win32-arm64-msvc/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@tailwindcss/oxide-win32-arm64-msvc` - -This is the **aarch64-pc-windows-msvc** binary for `@tailwindcss/oxide` diff --git a/oxide/crates/node/npm/win32-arm64-msvc/package.json b/oxide/crates/node/npm/win32-arm64-msvc/package.json deleted file mode 100644 index 151ac2ba3..000000000 --- a/oxide/crates/node/npm/win32-arm64-msvc/package.json +++ /dev/null @@ -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" - } -} \ No newline at end of file diff --git a/oxide/crates/node/npm/win32-ia32-msvc/README.md b/oxide/crates/node/npm/win32-ia32-msvc/README.md deleted file mode 100644 index 479937e82..000000000 --- a/oxide/crates/node/npm/win32-ia32-msvc/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# `@tailwindcss/oxide-win32-ia32-msvc` - -This is the **i686-pc-windows-msvc** binary for `@tailwindcss/oxide` diff --git a/oxide/crates/node/npm/win32-ia32-msvc/package.json b/oxide/crates/node/npm/win32-ia32-msvc/package.json deleted file mode 100644 index dca072d4a..000000000 --- a/oxide/crates/node/npm/win32-ia32-msvc/package.json +++ /dev/null @@ -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" - } -} \ No newline at end of file diff --git a/oxide/crates/node/npm/win32-x64-msvc/package.json b/oxide/crates/node/npm/win32-x64-msvc/package.json index 5fd5ac2a5..12d260ae7 100644 --- a/oxide/crates/node/npm/win32-x64-msvc/package.json +++ b/oxide/crates/node/npm/win32-x64-msvc/package.json @@ -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": { diff --git a/oxide/crates/node/package-lock.json b/oxide/crates/node/package-lock.json index fdffad5f8..aa87d3bd5 100644 --- a/oxide/crates/node/package-lock.json +++ b/oxide/crates/node/package-lock.json @@ -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" } }, diff --git a/oxide/crates/node/package.json b/oxide/crates/node/package.json index 4e0a39fd5..779fe1973 100644 --- a/oxide/crates/node/package.json +++ b/oxide/crates/node/package.json @@ -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" } -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index 0998ac7de..15983a0c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7424,8 +7424,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", @@ -7434,8 +7432,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" } } @@ -11928,8 +11924,6 @@ "version": "file:oxide/crates/node", "requires": { "@napi-rs/cli": "^2.13.0", - "@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", @@ -11938,8 +11932,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" } },