From c5b42f87b7aa49231d8c4d7e28e5e497293c9d5e Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Thu, 21 Mar 2024 13:07:14 +0100 Subject: [PATCH] drop oxide related workflows --- .github/workflows/ci.yml | 76 ---- .github/workflows/integration-tests-oxide.yml | 85 ---- .github/workflows/release-insiders-oxide.yml | 429 ------------------ .github/workflows/release-oxide.yml | 343 -------------- 4 files changed, 933 deletions(-) delete mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/integration-tests-oxide.yml delete mode 100644 .github/workflows/release-insiders-oxide.yml delete mode 100644 .github/workflows/release-oxide.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 015923ef1c9f..000000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,76 +0,0 @@ -name: CI — Oxide - -on: - push: - branches: [master, 3.3, 3.4] - pull_request: - branches: [master, 3.3, 3.4] - -permissions: - contents: read - -env: - CI: true - TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - CACHE_PREFIX: oxide - -jobs: - build: - runs-on: ubuntu-latest - timeout-minutes: 15 - - strategy: - matrix: - node-version: [18] - - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - - name: Cache node_modules - uses: actions/cache@v3 - with: - path: node_modules - key: ${{ runner.os }}-${{ matrix.node-version }}-${{ env.CACHE_PREFIX }}-node_modules-${{ hashFiles('**/package-lock.json') }} - - # Cargo already skips downloading dependencies if they already exist - - name: Cache cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - # Cache the `oxide` Rust build - - name: Cache oxide build - uses: actions/cache@v3 - with: - path: | - ./oxide/target/ - ./oxide/crates/node/*.node - ./oxide/crates/node/index.js - ./oxide/crates/node/index.d.ts - key: ${{ runner.os }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} - - - name: Install dependencies - run: npm install - - - name: Build Tailwind CSS - run: npx turbo run build --filter=// - - - name: Test - run: | - npx turbo run test --filter=// || \ - npx turbo run test --filter=// || \ - npx turbo run test --filter=// || exit 1 - - - name: Lint - run: npx turbo run style --filter=// diff --git a/.github/workflows/integration-tests-oxide.yml b/.github/workflows/integration-tests-oxide.yml deleted file mode 100644 index 3768d4ac8c88..000000000000 --- a/.github/workflows/integration-tests-oxide.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: Integration Tests — Oxide - -on: - push: - branches: [master, 3.3, 3.4] - pull_request: - branches: [master, 3.3, 3.4] - -permissions: - contents: read - -env: - CI: true - TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} - TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - CACHE_PREFIX: oxide - -jobs: - test: - runs-on: ubuntu-latest - timeout-minutes: 15 - - strategy: - matrix: - integration: - - content-resolution - - parcel - - postcss-cli - - rollup - - rollup-sass - - tailwindcss-cli - - vite - - webpack-4 - - webpack-5 - node-version: [18] - fail-fast: false - - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - - - name: Cache node_modules - uses: actions/cache@v3 - with: - path: node_modules - key: ${{ runner.os }}-${{ matrix.node-version }}-${{ env.CACHE_PREFIX }}-node_modules-${{ hashFiles('**/package-lock.json') }} - - # Cargo already skips downloading dependencies if they already exist - - name: Cache cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - # Cache the `oxide` Rust build - - name: Cache oxide build - uses: actions/cache@v3 - with: - path: | - ./oxide/target/ - ./oxide/crates/node/*.node - ./oxide/crates/node/index.js - ./oxide/crates/node/index.d.ts - key: ${{ runner.os }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} - - - name: Install dependencies - run: npm install - - - name: Build Tailwind CSS - run: npx turbo run build --filter=// - - - name: Test ${{ matrix.integration }} - run: | - npx turbo run test --filter=./integrations/${{ matrix.integration }} || \ - npx turbo run test --filter=./integrations/${{ matrix.integration }} || \ - npx turbo run test --filter=./integrations/${{ matrix.integration }} || exit 1 diff --git a/.github/workflows/release-insiders-oxide.yml b/.github/workflows/release-insiders-oxide.yml deleted file mode 100644 index 3afe4e7908ac..000000000000 --- a/.github/workflows/release-insiders-oxide.yml +++ /dev/null @@ -1,429 +0,0 @@ -name: Release Insiders — Oxide - -on: - push: - branches: [master] - -env: - APP_NAME: tailwindcss-oxide - NODE_VERSION: 16 - OXIDE_LOCATION: ./oxide/crates/node - RELEASE_CHANNEL: oxide-insiders - -jobs: - build: - strategy: - fail-fast: false - matrix: - include: - # Windows - - os: windows-latest - target: x86_64-pc-windows-msvc - # 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 }} - timeout-minutes: 15 - steps: - - uses: actions/checkout@v3 - - - name: Cache node_modules - uses: actions/cache@v3 - with: - path: node_modules - key: ${{ runner.os }}-${{ matrix.target }}-${{ env.NODE_VERSION }}-node_modules-${{ hashFiles('**/package-lock.json') }} - - # Cargo already skips downloading dependencies if they already exist - - name: Cache cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - # Cache the `oxide` Rust build - - name: Cache oxide build - uses: actions/cache@v3 - with: - path: | - ./oxide/target/ - ./oxide/crates/node/*.node - ./oxide/crates/node/index.js - ./oxide/crates/node/index.d.ts - key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} - - - name: Install Node.JS - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODE_VERSION }} - - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - name: Setup rust target - run: rustup target add ${{ matrix.target }} - - - name: Install dependencies - run: 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: | - ${{ env.OXIDE_LOCATION }}/*.node - ${{ matrix.binary }} - - build-apple-silicon: - name: Build Apple Silicon (OXIDE) - runs-on: macos-latest - timeout-minutes: 15 - steps: - - uses: actions/checkout@v3 - - - name: Cache node_modules - uses: actions/cache@v3 - with: - path: node_modules - key: ${{ runner.os }}-${{ env.NODE_VERSION }}-node_modules-${{ hashFiles('**/package-lock.json') }} - - # Cargo already skips downloading dependencies if they already exist - - name: Cache cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - # Cache the `oxide` Rust build - - name: Cache oxide build - uses: actions/cache@v3 - with: - path: | - ./oxide/target/ - ./oxide/crates/node/*.node - ./oxide/crates/node/index.js - ./oxide/crates/node/index.d.ts - key: ${{ runner.os }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} - - - name: Install Node.JS - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODE_VERSION }} - - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - name: Setup rust target - run: rustup target add aarch64-apple-darwin - - - name: Install dependencies - run: 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-aarch64-apple-darwin - path: | - ${{ env.OXIDE_LOCATION }}/*.node - ${{ env.APP_NAME }} - - build-linux: - strategy: - fail-fast: false - matrix: - include: - - target: x86_64-unknown-linux-gnu - strip: strip - image: docker.io/centos/nodejs-14-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 - timeout-minutes: 15 - container: - image: ${{ matrix.image }} - - steps: - - uses: actions/checkout@v3 - - - name: Cache node_modules - uses: actions/cache@v3 - with: - path: node_modules - key: ${{ runner.os }}-${{ matrix.target }}-${{ env.NODE_VERSION }}-node_modules-${{ hashFiles('**/package-lock.json') }} - - # Cargo already skips downloading dependencies if they already exist - - name: Cache cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-${{ matrix.target }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - # Cache the `oxide` Rust build - - name: Cache oxide build - uses: actions/cache@v3 - with: - path: | - ./oxide/target/ - ./oxide/crates/node/*.node - ./oxide/crates/node/index.js - ./oxide/crates/node/index.d.ts - key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} - - - name: Install Node.JS - uses: actions/setup-node@v3 - with: - 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: Install dependencies - run: 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: | - ${{ env.OXIDE_LOCATION }}/*.node - ${{ env.APP_NAME }} - - release: - runs-on: ubuntu-latest - timeout-minutes: 15 - name: Build and release - permissions: - contents: read - id-token: write - needs: - - build - - build-linux - - build-apple-silicon - steps: - - uses: actions/checkout@v3 - - - name: Cache node_modules - uses: actions/cache@v3 - with: - path: node_modules - key: ${{ runner.os }}-${{ env.NODE_VERSION }}-node_modules-${{ hashFiles('**/package-lock.json') }} - - # Cargo already skips downloading dependencies if they already exist - - name: Cache cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - # Cache the `oxide` Rust build - - name: Cache oxide build - uses: actions/cache@v3 - with: - path: | - ./oxide/target/ - ./oxide/crates/node/*.node - ./oxide/crates/node/index.js - ./oxide/crates/node/index.d.ts - key: ${{ runner.os }}-oxide-${{ hashFiles('./oxide/crates/**/*') }} - - - name: Install dependencies - run: npm install - - - name: Download artifacts - uses: actions/download-artifact@v3 - with: - path: ${{ env.OXIDE_LOCATION }} - - - run: echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > ~/.npmrc - env: - 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-${{ env.RELEASE_CHANNEL }}.$(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 --provenance --tag ${{ env.RELEASE_CHANNEL }} --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 --provenance --tag ${{ env.RELEASE_CHANNEL }} --access public - cd - - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - tailwind_oxide_release: - runs-on: ubuntu-latest - timeout-minutes: 15 - name: Build and release Tailwind CSS - permissions: - contents: read - id-token: write - - needs: - - release - - steps: - - uses: actions/checkout@v3 - - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODE_VERSION }} - registry-url: 'https://registry.npmjs.org' - - - name: Resolve version - id: vars - run: | - echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - echo "OXIDE_NPM_VERSION=0.0.0-${{ env.RELEASE_CHANNEL }}.$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - - name: Setup `@tailwindcss/oxide` version - run: | - sed "s#\"@tailwindcss/oxide\": \".*\"#\"@tailwindcss/oxide\": \"${{ env.OXIDE_NPM_VERSION }}\"#" package.json > package_updated.json - mv package_updated.json package.json - - - name: Install dependencies - run: npm install - - - name: Build Tailwind CSS - run: npm run build - - - name: Test - run: | - npm test || \ - npm test || \ - npm test || exit 1 - - - name: 'Version based on commit: 0.0.0-${{ env.RELEASE_CHANNEL }}.${{ env.SHA_SHORT }}' - run: npm version 0.0.0-${{ env.RELEASE_CHANNEL }}.${{ env.SHA_SHORT }} --force --no-git-tag-version - - - name: Publish - run: npm publish --provenance --tag ${{ env.RELEASE_CHANNEL }} - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - # !! Enable this, once we are cleaning up all the `stable` engine related files. - # - # - name: Trigger Tailwind Play update - # uses: actions/github-script@v6 - # with: - # github-token: ${{ secrets.TAILWIND_PLAY_TOKEN }} - # script: | - # await github.rest.actions.createWorkflowDispatch({ - # owner: 'tailwindlabs', - # repo: 'play.tailwindcss.com', - # ref: 'master', - # workflow_id: 'upgrade-tailwindcss.yml', - # inputs: { - # insidersVersion: '0.0.0-${{ env.RELEASE_CHANNEL }}.${{ env.SHA_SHORT }}' - # } - # }) diff --git a/.github/workflows/release-oxide.yml b/.github/workflows/release-oxide.yml deleted file mode 100644 index 63ca6c3a1be2..000000000000 --- a/.github/workflows/release-oxide.yml +++ /dev/null @@ -1,343 +0,0 @@ -name: Release — Oxide - -on: - workflow_dispatch: - -env: - APP_NAME: tailwindcss-oxide - NODE_VERSION: 14 - OXIDE_LOCATION: ./oxide/crates/node - -jobs: - oxide-build: - strategy: - fail-fast: false - matrix: - include: - # Windows - - os: windows-latest - target: x86_64-pc-windows-msvc - # 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 }} - timeout-minutes: 15 - steps: - - uses: actions/checkout@v3 - - - name: Install Node.JS - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODE_VERSION }} - - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - 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: | - ${{ env.OXIDE_LOCATION }}/*.node - ${{ matrix.binary }} - - oxide-build-apple-silicon: - name: Build Apple Silicon (OXIDE) - runs-on: macos-latest - timeout-minutes: 15 - steps: - - uses: actions/checkout@v3 - - - name: Cache node_modules - uses: actions/cache@v3 - with: - path: node_modules - key: ${{ runner.os }}-${{ matrix.node-version }}-node_modules-${{ hashFiles('**/package-lock.json') }} - - # Cargo already skips downloading dependencies if they already exist - - name: Cache cargo - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('./oxide/**/Cargo.lock') }} - - - name: Install Node.JS - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODE_VERSION }} - - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - name: Setup rust target - run: rustup target add aarch64-apple-darwin - - - name: Install dependencies - run: 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-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-14-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 - timeout-minutes: 15 - container: - image: ${{ matrix.image }} - - steps: - - uses: actions/checkout@v3 - - - name: Install Node.JS - uses: actions/setup-node@v3 - with: - 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-${{ matrix.target }} - path: | - ${{ env.OXIDE_LOCATION }}/*.node - ${{ env.APP_NAME }} - - oxide-release: - runs-on: ubuntu-latest - timeout-minutes: 15 - name: Build and release - permissions: - contents: read - id-token: write - needs: - - oxide-build - - oxide-build-linux - - oxide-build-apple-silicon - steps: - - uses: actions/checkout@v3 - - # - 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: - path: ${{ env.OXIDE_LOCATION }} - - - run: echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > ~/.npmrc - env: - 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 --provenance --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 --provenance --tag insiders --access public - cd - - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - tailwind_oxide_release: - runs-on: ubuntu-latest - timeout-minutes: 15 - name: Build and release Tailwind CSS - permissions: - contents: read - id-token: write - - needs: - - oxide-release - - strategy: - matrix: - node-version: [14] - - steps: - - uses: actions/checkout@v3 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - registry-url: 'https://registry.npmjs.org' - - - name: Resolve version - id: vars - run: | - echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - echo "OXIDE_NPM_VERSION=0.0.0-insiders.$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - - name: Setup `@tailwindcss/oxide` version - run: | - sed "s#\"@tailwindcss/oxide\": \".*\"#\"@tailwindcss/oxide\": \"${{ env.OXIDE_NPM_VERSION }}\"#" package.json > package_updated.json - mv package_updated.json package.json - - - name: Install dependencies - run: npm install - - - name: Build Tailwind CSS - run: npm run build - - - name: Test - run: npm test - - - name: 'Version based on commit: 0.0.0-oxide.${{ env.SHA_SHORT }}' - run: npm version 0.0.0-oxide.${{ env.SHA_SHORT }} --force --no-git-tag-version - - - name: Publish - run: npm publish --provenance --tag oxide - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}