diff --git a/.github/workflows/ci-stable.yml b/.github/workflows/ci-stable.yml deleted file mode 100644 index 9c5f6ff8f298..000000000000 --- a/.github/workflows/ci-stable.yml +++ /dev/null @@ -1,59 +0,0 @@ -# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: CI — Stable - -on: - push: - branches: [master] - 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: stable - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [14, 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: Use the `stable` engine - run: | - node ./scripts/swap-engines.js - - - 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') }} - - - name: Install dependencies - run: npm install - - - name: Build Tailwind CSS - run: npm run build - - - name: Test - run: | - npm run test || \ - npm run test || \ - npm run test || exit 1 - - - name: Lint - run: npm run style diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 015923ef1c9f..9c5f6ff8f298 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,8 +1,11 @@ -name: CI — Oxide +# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: CI — Stable on: push: - branches: [master, 3.3, 3.4] + branches: [master] pull_request: branches: [master, 3.3, 3.4] @@ -13,16 +16,15 @@ env: CI: true TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ secrets.TURBO_TEAM }} - CACHE_PREFIX: oxide + CACHE_PREFIX: stable jobs: build: runs-on: ubuntu-latest - timeout-minutes: 15 strategy: matrix: - node-version: [18] + node-version: [14, 18] steps: - uses: actions/checkout@v3 @@ -31,46 +33,27 @@ jobs: with: node-version: ${{ matrix.node-version }} + - name: Use the `stable` engine + run: | + node ./scripts/swap-engines.js + - 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=// + run: npm run build - name: Test run: | - npx turbo run test --filter=// || \ - npx turbo run test --filter=// || \ - npx turbo run test --filter=// || exit 1 + npm run test || \ + npm run test || \ + npm run test || exit 1 - name: Lint - run: npx turbo run style --filter=// + run: npm run style 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/integration-tests-stable.yml b/.github/workflows/integration-tests.yml similarity index 98% rename from .github/workflows/integration-tests-stable.yml rename to .github/workflows/integration-tests.yml index 8f2594adf026..4edec2d8ae2e 100644 --- a/.github/workflows/integration-tests-stable.yml +++ b/.github/workflows/integration-tests.yml @@ -1,4 +1,4 @@ -name: Integration Tests — Stable +name: Integration Tests on: push: 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-insiders-stable.yml b/.github/workflows/release-insiders.yml similarity index 98% rename from .github/workflows/release-insiders-stable.yml rename to .github/workflows/release-insiders.yml index d35ad265b697..5d508218bc3e 100644 --- a/.github/workflows/release-insiders-stable.yml +++ b/.github/workflows/release-insiders.yml @@ -1,4 +1,4 @@ -name: Release Insiders — Stable +name: Release Insiders on: push: 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 }} diff --git a/.github/workflows/release-stable.yml b/.github/workflows/release.yml similarity index 98% rename from .github/workflows/release-stable.yml rename to .github/workflows/release.yml index 5c2dde17044e..dfd770bb1e2f 100644 --- a/.github/workflows/release-stable.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Release — Stable +name: Release on: release: diff --git a/integrations/parcel/src/glob/index.html b/integrations/parcel/src/glob/index.html index fbc5b665a649..4039806312fd 100644 --- a/integrations/parcel/src/glob/index.html +++ b/integrations/parcel/src/glob/index.html @@ -1,12 +1,10 @@ -
- - - -