From 391f9cb51297330fe14b89268d8f9fecfd315710 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:04:39 +0100 Subject: [PATCH 01/29] copy release into release-insiders --- .github/workflows/release-insiders.yml | 273 +++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 .github/workflows/release-insiders.yml diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml new file mode 100644 index 000000000000..faa4a8271342 --- /dev/null +++ b/.github/workflows/release-insiders.yml @@ -0,0 +1,273 @@ +name: Release + +on: + workflow_dispatch: + inputs: + release_channel: + description: 'Release channel' + required: false + default: 'next' + type: string + +permissions: + contents: read + +env: + APP_NAME: tailwindcss-oxide + NODE_VERSION: 20 + OXIDE_LOCATION: ./crates/node + +jobs: + build: + strategy: + matrix: + include: + # Windows + - os: windows-latest + target: x86_64-pc-windows-msvc + - os: windows-latest + target: aarch64-pc-windows-msvc + # macOS + - os: macos-latest + target: x86_64-apple-darwin + strip: strip -x # Must use -x on macOS. This produces larger results on linux. + - os: macos-latest + target: aarch64-apple-darwin + page-size: 14 + strip: strip -x # Must use -x on macOS. This produces larger results on linux. + # Android + - os: ubuntu-latest + target: aarch64-linux-android + strip: ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + - os: ubuntu-latest + target: armv7-linux-androideabi + strip: ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + # Linux + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + strip: strip + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian + - os: ubuntu-latest + target: aarch64-unknown-linux-gnu + strip: llvm-strip + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 + - os: ubuntu-latest + target: armv7-unknown-linux-gnueabihf + strip: llvm-strip + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-zig + - os: ubuntu-latest + target: aarch64-unknown-linux-musl + strip: aarch64-linux-musl-strip + download: true + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + - os: ubuntu-latest + target: x86_64-unknown-linux-musl + strip: strip + download: true + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + + name: Build ${{ matrix.target }} (OXIDE) + runs-on: ${{ matrix.os }} + container: ${{ matrix.container }} + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: 'pnpm' + + # Cargo already skips downloading dependencies if they already exist + - name: Cache cargo + uses: actions/cache@v4 + 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@v4 + with: + path: | + ./oxide/target/ + ./crates/node/*.node + ./crates/node/index.js + ./crates/node/index.d.ts + key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./crates/**/*') }} + + - name: Install Node.JS + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Install Rust (Stable) + if: ${{ matrix.download }} + run: | + rustup default stable + + - name: Setup rust target + run: rustup target add ${{ matrix.target }} + + - name: Install dependencies + run: pnpm install --ignore-scripts --filter=!./playgrounds/* + + - name: Build release + run: pnpm run --filter ${{ env.OXIDE_LOCATION }} build + env: + RUST_TARGET: ${{ matrix.target }} + JEMALLOC_SYS_WITH_LG_PAGE: ${{ matrix.page-size }} + + - 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@v4 + with: + name: bindings-${{ matrix.target }} + path: ${{ env.OXIDE_LOCATION }}/*.node + + release: + runs-on: macos-14 + timeout-minutes: 15 + name: Build and release Tailwind CSS + + permissions: + contents: write # for softprops/action-gh-release to create GitHub release + # https://docs.npmjs.com/generating-provenance-statements#publishing-packages-with-provenance-via-github-actions + id-token: write + + needs: + - build + + steps: + - uses: actions/checkout@v4 + with: + fetch-tags: true + fetch-depth: 20 + + - run: git fetch --tags -f + + - name: Resolve version + id: vars + run: | + echo "TAG_NAME=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV + + - uses: pnpm/action-setup@v4 + + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: 'pnpm' + registry-url: 'https://registry.npmjs.org' + + # Cargo already skips downloading dependencies if they already exist + - name: Cache cargo + uses: actions/cache@v4 + 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@v4 + with: + path: | + ./oxide/target/ + ./crates/node/*.node + ./crates/node/index.js + ./crates/node/index.d.ts + key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./crates/**/*') }} + + - name: Install dependencies + run: pnpm --filter=!./playgrounds/* install + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + path: ${{ env.OXIDE_LOCATION }} + + - name: Move artifacts + run: | + cd ${{ env.OXIDE_LOCATION }} + cp bindings-x86_64-pc-windows-msvc/* ./npm/win32-x64-msvc/ + cp bindings-aarch64-pc-windows-msvc/* ./npm/win32-arm64-msvc/ + cp bindings-x86_64-apple-darwin/* ./npm/darwin-x64/ + cp bindings-aarch64-apple-darwin/* ./npm/darwin-arm64/ + cp bindings-aarch64-linux-android/* ./npm/android-arm64/ + cp bindings-armv7-linux-androideabi/* ./npm/android-arm-eabi/ + cp bindings-aarch64-unknown-linux-gnu/* ./npm/linux-arm64-gnu/ + cp bindings-aarch64-unknown-linux-musl/* ./npm/linux-arm64-musl/ + cp bindings-armv7-unknown-linux-gnueabihf/* ./npm/linux-arm-gnueabihf/ + cp bindings-x86_64-unknown-linux-gnu/* ./npm/linux-x64-gnu/ + cp bindings-x86_64-unknown-linux-musl/* ./npm/linux-x64-musl/ + + - name: Build Tailwind CSS + run: pnpm run build + + - name: Run pre-publish optimizations scripts + run: node ./scripts/pre-publish-optimizations.mjs + + - name: Lock pre-release versions + run: node ./scripts/lock-pre-release-versions.mjs + + - name: Get release notes + run: | + RELEASE_NOTES=$(node ./scripts/release-notes.mjs) + echo "RELEASE_NOTES<> $GITHUB_ENV + echo "$RELEASE_NOTES" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + - name: Upload Standalone Artifacts + uses: actions/upload-artifact@v4 + with: + name: tailwindcss-standalone + path: packages/@tailwindcss-standalone/dist/ + + - name: Publish + run: pnpm --recursive publish --tag ${{ inputs.release_channel }} --no-git-checks + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Alias packages to `latest` + if: ${{ inputs.release_channel == 'next' }} + run: | + npm dist-tag add @tailwindcss/upgrade@${{ env.TAG_NAME }} latest + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Release + uses: softprops/action-gh-release@v2 + with: + draft: true + tag_name: ${{ env.TAG_NAME }} + body: | + ${{ env.RELEASE_NOTES }} + files: | + packages/@tailwindcss-standalone/dist/sha256sums.txt + packages/@tailwindcss-standalone/dist/tailwindcss-linux-arm64 + packages/@tailwindcss-standalone/dist/tailwindcss-linux-arm64-musl + packages/@tailwindcss-standalone/dist/tailwindcss-linux-x64 + packages/@tailwindcss-standalone/dist/tailwindcss-linux-x64-musl + packages/@tailwindcss-standalone/dist/tailwindcss-macos-arm64 + packages/@tailwindcss-standalone/dist/tailwindcss-macos-x64 + packages/@tailwindcss-standalone/dist/tailwindcss-windows-x64.exe From 7968f97b82588d8ffaf15129a159ffcedda5d2b7 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:06:28 +0100 Subject: [PATCH 02/29] rename workflow --- .github/workflows/release-insiders.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index faa4a8271342..17f908c0d672 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -1,4 +1,4 @@ -name: Release +name: Release Insiders on: workflow_dispatch: @@ -143,7 +143,7 @@ jobs: release: runs-on: macos-14 timeout-minutes: 15 - name: Build and release Tailwind CSS + name: Build and release Tailwind CSS insiders permissions: contents: write # for softprops/action-gh-release to create GitHub release From d82e3055dd29044e2bf13de26bcc614db30b78d6 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:06:41 +0100 Subject: [PATCH 03/29] adjust trigger Trigger on pushes to the `next` branch, instead of relying on a manual workflow dispatch. --- .github/workflows/release-insiders.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index 17f908c0d672..4d8bfae6cadf 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -1,13 +1,9 @@ name: Release Insiders on: - workflow_dispatch: - inputs: - release_channel: - description: 'Release channel' - required: false - default: 'next' - type: string + push: + # TODO: Rename to `main`, once merged + branches: [next] permissions: contents: read From 3ef6f6d00bb68fca7e37edebf949762ae244440e Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:07:41 +0100 Subject: [PATCH 04/29] compute hash instead of relying on tag name --- .github/workflows/release-insiders.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index 4d8bfae6cadf..be56ea60e505 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -155,12 +155,10 @@ jobs: fetch-tags: true fetch-depth: 20 - - run: git fetch --tags -f - - name: Resolve version id: vars run: | - echo "TAG_NAME=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV + echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - uses: pnpm/action-setup@v4 From 7787979f09d9247f598448cd7055bca3d5d943e3 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 18:55:05 +0100 Subject: [PATCH 05/29] accept optional version when running `version-packages` If a version is passed, all packages will be set to that version. --- scripts/version-packages.mjs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/scripts/version-packages.mjs b/scripts/version-packages.mjs index 2e3d93a3e668..6215c8451437 100644 --- a/scripts/version-packages.mjs +++ b/scripts/version-packages.mjs @@ -8,6 +8,7 @@ import prettier from 'prettier' const __dirname = path.dirname(url.fileURLToPath(import.meta.url)) const root = path.resolve(__dirname, '..') +const version = process.argv[2] || null // The known workspace is: @tailwindcss/oxide // All the workspaces in `crates/node/npm/*` should always be in sync with @@ -52,6 +53,34 @@ exec('pnpm --silent --filter=!./playgrounds/* -r exec pwd', async (err, stdout) process.exit(1) } + if (version !== null) { + for (let pkgPath of stdout + .trim() + .split('\n') + .map((x) => path.resolve(x, 'package.json'))) { + let pkg = await fs.readFile(pkgPath, 'utf8').then(JSON.parse) + let name = pkg.name + if (version !== '') { + // Ensure the version is set after the name and before everything else + delete pkg.name + delete pkg.version + + // This allows us to keep the order of the keys in the package.json + pkg = { name, version, ...pkg } + } + + await fs.writeFile( + pkgPath, + await prettier + .format(JSON.stringify(pkg, null, 2), { filepath: pkgPath }) + .then((x) => `${x.trim()}\n`), + ) + } + + console.log('Done.') + return + } + let paths = stdout .trim() .split('\n') From 350c5d830d4c37ccbca2c3dcecf1144fd8c8b7fa Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:08:01 +0100 Subject: [PATCH 06/29] version packages using commit hash --- .github/workflows/release-insiders.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index be56ea60e505..644e93663215 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -218,6 +218,9 @@ jobs: - name: Build Tailwind CSS run: pnpm run build + - name: 'Version based on commit: 0.0.0-${{ env.RELEASE_CHANNEL }}.${{ env.SHA_SHORT }}' + run: pnpm run version-packages 0.0.0-${{ env.RELEASE_CHANNEL }}.${{ env.SHA_SHORT }} + - name: Run pre-publish optimizations scripts run: node ./scripts/pre-publish-optimizations.mjs From 13fba6daba30a0c83dd3ccde34c9f61236e45efc Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:08:48 +0100 Subject: [PATCH 07/29] do not compute release notes --- .github/workflows/release-insiders.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index 644e93663215..a46727e1d01b 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -227,12 +227,6 @@ jobs: - name: Lock pre-release versions run: node ./scripts/lock-pre-release-versions.mjs - - name: Get release notes - run: | - RELEASE_NOTES=$(node ./scripts/release-notes.mjs) - echo "RELEASE_NOTES<> $GITHUB_ENV - echo "$RELEASE_NOTES" >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - name: Upload Standalone Artifacts uses: actions/upload-artifact@v4 From 67fe942a70b3fb166f0c97a6d20f61175a76beca Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:09:07 +0100 Subject: [PATCH 08/29] do not upload artifacts for standalone CLI --- .github/workflows/release-insiders.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index a46727e1d01b..faa396bb1df1 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -227,13 +227,6 @@ jobs: - name: Lock pre-release versions run: node ./scripts/lock-pre-release-versions.mjs - - - name: Upload Standalone Artifacts - uses: actions/upload-artifact@v4 - with: - name: tailwindcss-standalone - path: packages/@tailwindcss-standalone/dist/ - - name: Publish run: pnpm --recursive publish --tag ${{ inputs.release_channel }} --no-git-checks env: From cf82f166b255217b1a90b96e835e2fce4e6fb106 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:09:42 +0100 Subject: [PATCH 09/29] do not alias packages to `latest` --- .github/workflows/release-insiders.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index faa396bb1df1..28803a16891d 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -232,13 +232,6 @@ jobs: env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - name: Alias packages to `latest` - if: ${{ inputs.release_channel == 'next' }} - run: | - npm dist-tag add @tailwindcss/upgrade@${{ env.TAG_NAME }} latest - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - name: Release uses: softprops/action-gh-release@v2 with: From 526edeb41822268fb2aac96541c59dc3c8616097 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:10:00 +0100 Subject: [PATCH 10/29] do not create a GitHub release --- .github/workflows/release-insiders.yml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index 28803a16891d..31ec7265d78b 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -231,20 +231,3 @@ jobs: run: pnpm --recursive publish --tag ${{ inputs.release_channel }} --no-git-checks env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - - name: Release - uses: softprops/action-gh-release@v2 - with: - draft: true - tag_name: ${{ env.TAG_NAME }} - body: | - ${{ env.RELEASE_NOTES }} - files: | - packages/@tailwindcss-standalone/dist/sha256sums.txt - packages/@tailwindcss-standalone/dist/tailwindcss-linux-arm64 - packages/@tailwindcss-standalone/dist/tailwindcss-linux-arm64-musl - packages/@tailwindcss-standalone/dist/tailwindcss-linux-x64 - packages/@tailwindcss-standalone/dist/tailwindcss-linux-x64-musl - packages/@tailwindcss-standalone/dist/tailwindcss-macos-arm64 - packages/@tailwindcss-standalone/dist/tailwindcss-macos-x64 - packages/@tailwindcss-standalone/dist/tailwindcss-windows-x64.exe From 2f231b4550254b3d7c1acc431d93406d37043891 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:12:25 +0100 Subject: [PATCH 11/29] set `env.RELEASE_CHANNEL` --- .github/workflows/release-insiders.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index 31ec7265d78b..e45cab06e178 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -12,6 +12,7 @@ env: APP_NAME: tailwindcss-oxide NODE_VERSION: 20 OXIDE_LOCATION: ./crates/node + RELEASE_CHANNEL: insiders jobs: build: From afdde33434068468884878feec90b49a93439e3d Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:10:09 +0100 Subject: [PATCH 12/29] use `env.RELEASE_CHANNEL` --- .github/workflows/release-insiders.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index e45cab06e178..ec85d1681170 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -229,6 +229,6 @@ jobs: run: node ./scripts/lock-pre-release-versions.mjs - name: Publish - run: pnpm --recursive publish --tag ${{ inputs.release_channel }} --no-git-checks + run: pnpm --recursive publish --tag ${{ env.RELEASE_CHANNEL }} --no-git-checks env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} From ec7c175fb91575271fb3927e25632b37c22b3f19 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:25:12 +0100 Subject: [PATCH 13/29] trigger prepare release when pushing a tag --- .github/workflows/prepare-release.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml index 0c4979b2bd55..bbc51fc60f6c 100644 --- a/.github/workflows/prepare-release.yml +++ b/.github/workflows/prepare-release.yml @@ -2,6 +2,9 @@ name: Prepare Release on: workflow_dispatch: + push: + tags: + - 'v*' env: CI: true From 20d8f53af5bacddfc8fd59c933e77fa0e5dee0a2 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 19:26:20 +0100 Subject: [PATCH 14/29] copy release workflow into prepare-release.yml --- .github/workflows/prepare-release.yml | 257 +++++++++++++++++++++++++- 1 file changed, 251 insertions(+), 6 deletions(-) diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml index bbc51fc60f6c..9d289365b2e8 100644 --- a/.github/workflows/prepare-release.yml +++ b/.github/workflows/prepare-release.yml @@ -7,19 +7,264 @@ on: - 'v*' env: - CI: true + APP_NAME: tailwindcss-oxide + NODE_VERSION: 20 + OXIDE_LOCATION: ./crates/node permissions: contents: read jobs: build: - runs-on: macos-12 - timeout-minutes: 15 - strategy: matrix: - node-version: [16] + include: + # Windows + - os: windows-latest + target: x86_64-pc-windows-msvc + - os: windows-latest + target: aarch64-pc-windows-msvc + # macOS + - os: macos-latest + target: x86_64-apple-darwin + strip: strip -x # Must use -x on macOS. This produces larger results on linux. + - os: macos-latest + target: aarch64-apple-darwin + page-size: 14 + strip: strip -x # Must use -x on macOS. This produces larger results on linux. + # Android + - os: ubuntu-latest + target: aarch64-linux-android + strip: ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + - os: ubuntu-latest + target: armv7-linux-androideabi + strip: ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + # Linux + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + strip: strip + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian + - os: ubuntu-latest + target: aarch64-unknown-linux-gnu + strip: llvm-strip + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 + - os: ubuntu-latest + target: armv7-unknown-linux-gnueabihf + strip: llvm-strip + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-zig + - os: ubuntu-latest + target: aarch64-unknown-linux-musl + strip: aarch64-linux-musl-strip + download: true + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + - os: ubuntu-latest + target: x86_64-unknown-linux-musl + strip: strip + download: true + container: + image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + + name: Build ${{ matrix.target }} (OXIDE) + runs-on: ${{ matrix.os }} + container: ${{ matrix.container }} + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: 'pnpm' + + # Cargo already skips downloading dependencies if they already exist + - name: Cache cargo + uses: actions/cache@v4 + 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@v4 + with: + path: | + ./oxide/target/ + ./crates/node/*.node + ./crates/node/index.js + ./crates/node/index.d.ts + key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./crates/**/*') }} + + - name: Install Node.JS + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Install Rust (Stable) + if: ${{ matrix.download }} + run: | + rustup default stable + + - name: Setup rust target + run: rustup target add ${{ matrix.target }} + + - name: Install dependencies + run: pnpm install --ignore-scripts --filter=!./playgrounds/* + + - name: Build release + run: pnpm run --filter ${{ env.OXIDE_LOCATION }} build + env: + RUST_TARGET: ${{ matrix.target }} + JEMALLOC_SYS_WITH_LG_PAGE: ${{ matrix.page-size }} + + - 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@v4 + with: + name: bindings-${{ matrix.target }} + path: ${{ env.OXIDE_LOCATION }}/*.node + + release: + runs-on: macos-14 + timeout-minutes: 15 + name: Build and release Tailwind CSS + + permissions: + contents: write # for softprops/action-gh-release to create GitHub release + # https://docs.npmjs.com/generating-provenance-statements#publishing-packages-with-provenance-via-github-actions + id-token: write + + needs: + - build steps: - - run: echo "stub" + - uses: actions/checkout@v4 + with: + fetch-tags: true + fetch-depth: 20 + + - run: git fetch --tags -f + + - name: Resolve version + id: vars + run: | + echo "TAG_NAME=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV + + - uses: pnpm/action-setup@v4 + + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + cache: 'pnpm' + registry-url: 'https://registry.npmjs.org' + + # Cargo already skips downloading dependencies if they already exist + - name: Cache cargo + uses: actions/cache@v4 + 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@v4 + with: + path: | + ./oxide/target/ + ./crates/node/*.node + ./crates/node/index.js + ./crates/node/index.d.ts + key: ${{ runner.os }}-${{ matrix.target }}-oxide-${{ hashFiles('./crates/**/*') }} + + - name: Install dependencies + run: pnpm --filter=!./playgrounds/* install + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + path: ${{ env.OXIDE_LOCATION }} + + - name: Move artifacts + run: | + cd ${{ env.OXIDE_LOCATION }} + cp bindings-x86_64-pc-windows-msvc/* ./npm/win32-x64-msvc/ + cp bindings-aarch64-pc-windows-msvc/* ./npm/win32-arm64-msvc/ + cp bindings-x86_64-apple-darwin/* ./npm/darwin-x64/ + cp bindings-aarch64-apple-darwin/* ./npm/darwin-arm64/ + cp bindings-aarch64-linux-android/* ./npm/android-arm64/ + cp bindings-armv7-linux-androideabi/* ./npm/android-arm-eabi/ + cp bindings-aarch64-unknown-linux-gnu/* ./npm/linux-arm64-gnu/ + cp bindings-aarch64-unknown-linux-musl/* ./npm/linux-arm64-musl/ + cp bindings-armv7-unknown-linux-gnueabihf/* ./npm/linux-arm-gnueabihf/ + cp bindings-x86_64-unknown-linux-gnu/* ./npm/linux-x64-gnu/ + cp bindings-x86_64-unknown-linux-musl/* ./npm/linux-x64-musl/ + + - name: Build Tailwind CSS + run: pnpm run build + + - name: Run pre-publish optimizations scripts + run: node ./scripts/pre-publish-optimizations.mjs + + - name: Lock pre-release versions + run: node ./scripts/lock-pre-release-versions.mjs + + - name: Get release notes + run: | + RELEASE_NOTES=$(node ./scripts/release-notes.mjs) + echo "RELEASE_NOTES<> $GITHUB_ENV + echo "$RELEASE_NOTES" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + + - name: Upload Standalone Artifacts + uses: actions/upload-artifact@v4 + with: + name: tailwindcss-standalone + path: packages/@tailwindcss-standalone/dist/ + + - name: Publish + run: pnpm --recursive publish --tag ${{ inputs.release_channel }} --no-git-checks + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Alias packages to `latest` + if: ${{ inputs.release_channel == 'next' }} + run: | + npm dist-tag add @tailwindcss/upgrade@${{ env.TAG_NAME }} latest + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + - name: Release + uses: softprops/action-gh-release@v2 + with: + draft: true + tag_name: ${{ env.TAG_NAME }} + body: | + ${{ env.RELEASE_NOTES }} + files: | + packages/@tailwindcss-standalone/dist/sha256sums.txt + packages/@tailwindcss-standalone/dist/tailwindcss-linux-arm64 + packages/@tailwindcss-standalone/dist/tailwindcss-linux-arm64-musl + packages/@tailwindcss-standalone/dist/tailwindcss-linux-x64 + packages/@tailwindcss-standalone/dist/tailwindcss-linux-x64-musl + packages/@tailwindcss-standalone/dist/tailwindcss-macos-arm64 + packages/@tailwindcss-standalone/dist/tailwindcss-macos-x64 + packages/@tailwindcss-standalone/dist/tailwindcss-windows-x64.exe From ee5773318483c24e1e96966db8b1b47713852c0b Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 23:48:17 +0100 Subject: [PATCH 15/29] remove publish and alias package step --- .github/workflows/prepare-release.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml index 9d289365b2e8..b38d13fc4b42 100644 --- a/.github/workflows/prepare-release.yml +++ b/.github/workflows/prepare-release.yml @@ -240,18 +240,6 @@ jobs: name: tailwindcss-standalone path: packages/@tailwindcss-standalone/dist/ - - name: Publish - run: pnpm --recursive publish --tag ${{ inputs.release_channel }} --no-git-checks - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - - name: Alias packages to `latest` - if: ${{ inputs.release_channel == 'next' }} - run: | - npm dist-tag add @tailwindcss/upgrade@${{ env.TAG_NAME }} latest - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - name: Release uses: softprops/action-gh-release@v2 with: From cb673b8a3283b2fd4d13ad8f9ca6aa195b637025 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 27 Jan 2025 23:48:26 +0100 Subject: [PATCH 16/29] rename release to prepare --- .github/workflows/prepare-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml index b38d13fc4b42..f1387d570f17 100644 --- a/.github/workflows/prepare-release.yml +++ b/.github/workflows/prepare-release.yml @@ -137,7 +137,7 @@ jobs: name: bindings-${{ matrix.target }} path: ${{ env.OXIDE_LOCATION }}/*.node - release: + prepare: runs-on: macos-14 timeout-minutes: 15 name: Build and release Tailwind CSS @@ -240,7 +240,7 @@ jobs: name: tailwindcss-standalone path: packages/@tailwindcss-standalone/dist/ - - name: Release + - name: Prepare GitHub Release uses: softprops/action-gh-release@v2 with: draft: true From 9c6d5aab292eca357fbb434846ab512102c2988c Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 11:41:14 +0100 Subject: [PATCH 17/29] remove release notes from release --- .github/workflows/release.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index faa4a8271342..86c35809b3c7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -230,13 +230,6 @@ jobs: - name: Lock pre-release versions run: node ./scripts/lock-pre-release-versions.mjs - - name: Get release notes - run: | - RELEASE_NOTES=$(node ./scripts/release-notes.mjs) - echo "RELEASE_NOTES<> $GITHUB_ENV - echo "$RELEASE_NOTES" >> $GITHUB_ENV - echo "EOF" >> $GITHUB_ENV - - name: Upload Standalone Artifacts uses: actions/upload-artifact@v4 with: From 109dcbfc07b909a9c319b84a3384cbbe7e02f21b Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 11:41:32 +0100 Subject: [PATCH 18/29] do not upload standalone CLI artifacts This was already done during the prepare release step --- .github/workflows/release.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 86c35809b3c7..72d4f9b220df 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -230,12 +230,6 @@ jobs: - name: Lock pre-release versions run: node ./scripts/lock-pre-release-versions.mjs - - name: Upload Standalone Artifacts - uses: actions/upload-artifact@v4 - with: - name: tailwindcss-standalone - path: packages/@tailwindcss-standalone/dist/ - - name: Publish run: pnpm --recursive publish --tag ${{ inputs.release_channel }} --no-git-checks env: From 906bba65ba30eadeaa383dc74ef79dbe54ddfb37 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 11:41:50 +0100 Subject: [PATCH 19/29] do not create a GitHub release This was already done during the prepare release step. --- .github/workflows/release.yml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 72d4f9b220df..fc3716bcf4a1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -241,20 +241,3 @@ jobs: npm dist-tag add @tailwindcss/upgrade@${{ env.TAG_NAME }} latest env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - - name: Release - uses: softprops/action-gh-release@v2 - with: - draft: true - tag_name: ${{ env.TAG_NAME }} - body: | - ${{ env.RELEASE_NOTES }} - files: | - packages/@tailwindcss-standalone/dist/sha256sums.txt - packages/@tailwindcss-standalone/dist/tailwindcss-linux-arm64 - packages/@tailwindcss-standalone/dist/tailwindcss-linux-arm64-musl - packages/@tailwindcss-standalone/dist/tailwindcss-linux-x64 - packages/@tailwindcss-standalone/dist/tailwindcss-linux-x64-musl - packages/@tailwindcss-standalone/dist/tailwindcss-macos-arm64 - packages/@tailwindcss-standalone/dist/tailwindcss-macos-x64 - packages/@tailwindcss-standalone/dist/tailwindcss-windows-x64.exe From 45d928b9aef77d39ed4145388d42aa91176dae90 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 11:46:35 +0100 Subject: [PATCH 20/29] add `scripts/release-channel.js` This will compute the release channel we are interested in. Typically, this will be just `latest`, but could also be `beta` in case of `5.0.0-beta.2` --- scripts/release-channel.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 scripts/release-channel.js diff --git a/scripts/release-channel.js b/scripts/release-channel.js new file mode 100644 index 000000000000..15dc7df8213e --- /dev/null +++ b/scripts/release-channel.js @@ -0,0 +1,20 @@ +// Given a version, figure out what the release channel is so that we can publish to the correct +// channel on npm. +// +// E.g.: +// +// 1.2.3 -> latest (default) +// 0.0.0-insiders.ffaa88 -> insiders +// 4.1.0-alpha.4 -> alpha + +let version = + process.argv[2] || + process.env.npm_package_version || + require('../packages/tailwindcss/package.json').version + +let match = /\d+\.\d+\.\d+-(.*)\.\d+/g.exec(version) +if (match) { + console.log(match[1]) +} else { + console.log('latest') +} From 4f15777b096aee2d7c745b97024664644e5417b5 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 11:55:36 +0100 Subject: [PATCH 21/29] trigger release when GitHub release is published Or manual workflow_dispatch trigger. --- .github/workflows/release.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fc3716bcf4a1..73550dfb74e3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,13 +1,9 @@ name: Release on: + release: + types: [published] workflow_dispatch: - inputs: - release_channel: - description: 'Release channel' - required: false - default: 'next' - type: string permissions: contents: read From 206bdbb9b84f16ba8f009240634aebd2e186e791 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 11:56:01 +0100 Subject: [PATCH 22/29] remove `TAG_NAME` calculation This should not be necessary anymore, the NPM tag will be published based on the version in `package.json` of the `tailwindcss` package. --- .github/workflows/release.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 73550dfb74e3..851e446e5ae5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -155,13 +155,6 @@ jobs: fetch-tags: true fetch-depth: 20 - - run: git fetch --tags -f - - - name: Resolve version - id: vars - run: | - echo "TAG_NAME=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV - - uses: pnpm/action-setup@v4 - name: Use Node.js ${{ env.NODE_VERSION }} From aec16146a6b97af4e1197d7d4959a80474a5b228 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 11:57:19 +0100 Subject: [PATCH 23/29] compute RELEASE_CHANNEL based on version number --- .github/workflows/release.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 851e446e5ae5..46354c723eb1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -219,8 +219,13 @@ jobs: - name: Lock pre-release versions run: node ./scripts/lock-pre-release-versions.mjs + - name: Calculate environment variables + run: | + echo "RELEASE_CHANNEL=$(node ./scripts/release-channel.js)" >> $GITHUB_ENV + echo "TAILWINDCSS_VERSION=$(node -e 'console.log(require(`./packages/tailwindcss/package.json`).version);')" >> $GITHUB_ENV + - name: Publish - run: pnpm --recursive publish --tag ${{ inputs.release_channel }} --no-git-checks + run: pnpm --recursive publish --tag ${{ env.RELEASE_CHANNEL }} --no-git-checks env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} From a1580e2c95076705f67ba704475729723a788443 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 11:58:22 +0100 Subject: [PATCH 24/29] do not alias packages to `latest` We will mostly always publish to `latest`, so this step is unnecessary. --- .github/workflows/release.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 46354c723eb1..d28c5a438fc7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -229,9 +229,3 @@ jobs: env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - - name: Alias packages to `latest` - if: ${{ inputs.release_channel == 'next' }} - run: | - npm dist-tag add @tailwindcss/upgrade@${{ env.TAG_NAME }} latest - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} From f80eb9ea6f32d09d87285717a0afda37472787ea Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 11:58:55 +0100 Subject: [PATCH 25/29] trigger a Tailwind Play update once the publish step is complete --- .github/workflows/release.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d28c5a438fc7..e312252ea249 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -229,3 +229,18 @@ jobs: env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + - name: Trigger Tailwind Play update + if: env.RELEASE_CHANNEL == 'latest' + 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: { + version: '${{ env.TAILWINDCSS_VERSION }}' + } + }) From 5c2d77277cb3ddf36161bc5d51dc91b3f227d907 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 12:00:09 +0100 Subject: [PATCH 26/29] trigger Tailwind Play update when insiders release is published --- .github/workflows/release-insiders.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index ec85d1681170..e352f37388be 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -232,3 +232,18 @@ jobs: run: pnpm --recursive publish --tag ${{ env.RELEASE_CHANNEL }} --no-git-checks env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + + - 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 }}' + } + }) From 523faf8354ce58a8cbe9baf7979538b551762e6b Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 12:04:21 +0100 Subject: [PATCH 27/29] use `actions.github-script@v7` --- .github/workflows/release-insiders.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index e352f37388be..e7f564df2b1a 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -234,7 +234,7 @@ jobs: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - name: Trigger Tailwind Play update - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: github-token: ${{ secrets.TAILWIND_PLAY_TOKEN }} script: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e312252ea249..c9a21abc892a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -231,7 +231,7 @@ jobs: - name: Trigger Tailwind Play update if: env.RELEASE_CHANNEL == 'latest' - uses: actions/github-script@v6 + uses: actions/github-script@v7 with: github-token: ${{ secrets.TAILWIND_PLAY_TOKEN }} script: | From 572dddfc33ec95f87f7e31f57ef73ae7c7235510 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 12:17:40 +0100 Subject: [PATCH 28/29] tmp: trigger insiders release (dry run) from branch For testing purposes only --- .github/workflows/release-insiders.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index e7f564df2b1a..591c1b24650a 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -3,7 +3,7 @@ name: Release Insiders on: push: # TODO: Rename to `main`, once merged - branches: [next] + branches: [feat/setup-v4-releases] permissions: contents: read @@ -229,7 +229,7 @@ jobs: run: node ./scripts/lock-pre-release-versions.mjs - name: Publish - run: pnpm --recursive publish --tag ${{ env.RELEASE_CHANNEL }} --no-git-checks + run: pnpm --recursive publish --tag ${{ env.RELEASE_CHANNEL }} --no-git-checks --dry-run env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} From 710c9bf3ccbe5597269b636d898ff518e457670b Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Tue, 28 Jan 2025 12:29:47 +0100 Subject: [PATCH 29/29] Revert "tmp: trigger insiders release (dry run) from branch" This reverts commit 572dddfc33ec95f87f7e31f57ef73ae7c7235510. --- .github/workflows/release-insiders.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-insiders.yml b/.github/workflows/release-insiders.yml index 591c1b24650a..e7f564df2b1a 100644 --- a/.github/workflows/release-insiders.yml +++ b/.github/workflows/release-insiders.yml @@ -3,7 +3,7 @@ name: Release Insiders on: push: # TODO: Rename to `main`, once merged - branches: [feat/setup-v4-releases] + branches: [next] permissions: contents: read @@ -229,7 +229,7 @@ jobs: run: node ./scripts/lock-pre-release-versions.mjs - name: Publish - run: pnpm --recursive publish --tag ${{ env.RELEASE_CHANNEL }} --no-git-checks --dry-run + run: pnpm --recursive publish --tag ${{ env.RELEASE_CHANNEL }} --no-git-checks env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}