Skip to content

Commit

Permalink
feat: migrate from yarn to pnpm (#567)
Browse files Browse the repository at this point in the history
* Test yarn.

* Add pnpm.

* Delete yarn.

* Test build and bench.

* Update type check.

* Audit deps.

* Update workflows.

* Remove lerna.

* Fix scripts.

* Ignore lockfile.

* Enable release.

* Fix release.

* Debug zig.

* Use semicolons

* Try cross.

* Fix comment.

* Bump.

* feat: fix spell and disable release ci

* Fix ci

---------

Co-authored-by: Yunfei <i.heyunfei@gmail.com>
  • Loading branch information
milesj and hyf0 committed Mar 13, 2024
1 parent e721d19 commit fbe32d2
Show file tree
Hide file tree
Showing 47 changed files with 6,966 additions and 14,243 deletions.
2 changes: 1 addition & 1 deletion .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"commitMessageAction": "bump up",
"commitMessageTopic": "{{depName}} version",
"ignoreDeps": [],
"postUpdateOptions": ["yarnDedupeHighest"],
"postUpdateOptions": ["pnpmDedupe"],
"lockFileMaintenance": {
"enabled": true,
"extends": ["schedule:weekly"]
Expand Down
32 changes: 21 additions & 11 deletions .github/workflows/ci.yaml → .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,47 +95,57 @@ jobs:
bins: just
cache-base: main

- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8.15.4

- name: Install node
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
cache: pnpm

- name: Install dependencies
run: yarn install
run: pnpm install

- name: Build Rolldown
run: yarn build
run: pnpm build

- name: Type Check
run: yarn type-check
run: pnpm type-check

- name: Run Test
run: yarn test
run: pnpm test

node-validation:
name: Node Validation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8.15.4

- name: Install node
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
cache: pnpm

- name: Install dependencies
run: yarn install
run: pnpm install

- name: Oxc Lint
run: yarn lint-code
run: pnpm lint-code

- name: Lint Filename
run: yarn lint-filename
run: pnpm lint-filename

- name: Format Check
run: yarn format:ci
run: pnpm format:ci

- name: Lint Spell
run: yarn lint-spell
run: pnpm lint-spell
9 changes: 7 additions & 2 deletions .github/workflows/codspeed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,19 @@ jobs:
cache-base: main
cache-target: release

- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8.15.4

- name: Install node
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
cache: pnpm

- name: Install dependencies
run: yarn install
run: pnpm install

- name: Setup benchmark
run: just setup-bench
Expand Down
File renamed without changes.
136 changes: 77 additions & 59 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
include:
- os: macos-latest
target: x86_64-apple-darwin
build: yarn build-binding:release
build: pnpm build-binding:release

- os: macos-latest
target: aarch64-apple-darwin
Expand All @@ -25,76 +25,79 @@ jobs:
export CXX=$(xcrun -f clang++);
SYSROOT=$(xcrun --sdk macosx --show-sdk-path);
export CFLAGS="-isysroot $SYSROOT -isystem $SYSROOT";
export CARGO_BUILD_TARGET=aarch64-apple-darwin
yarn build-binding:release
export CARGO_BUILD_TARGET=aarch64-apple-darwin;
pnpm build-binding:release
- os: windows-latest
target: x86_64-pc-windows-msvc
build: yarn build-binding:release
build: pnpm build-binding:release

- os: windows-latest
target: i686-pc-windows-msvc
build: |
export CARGO_BUILD_TARGET=i686-pc-windows-msvc
yarn build-binding:release
export CARGO_BUILD_TARGET=i686-pc-windows-msvc;
pnpm build-binding:release
- os: windows-latest
target: aarch64-pc-windows-msvc
build: |
export CARGO_BUILD_TARGET=aarch64-pc-windows-msvc
yarn build-binding:release
export CARGO_BUILD_TARGET=aarch64-pc-windows-msvc;
pnpm build-binding:release
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
build: |-
set -e &&
export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu &&
yarn build-binding:release
set -e;
export CARGO_BUILD_TARGET=x86_64-unknown-linux-gnu;
pnpm build-binding:release
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: yarn build-binding:release
build: pnpm build-binding:release

- os: ubuntu-latest
target: aarch64-unknown-linux-gnu
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
build: |-
set -e &&
export CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu &&
rustup target add aarch64-unknown-linux-gnu &&
yarn build-binding:release
set -e;
export CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu;
rustup target add aarch64-unknown-linux-gnu;
pnpm build-binding:release
- os: ubuntu-latest
target: armv7-unknown-linux-gnueabihf
build: |
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf -y
export CARGO_BUILD_TARGET=armv7-unknown-linux-gnueabihf
yarn build-binding:release --zig --zig-link-only
sudo apt-get update;
sudo apt-get install gcc-arm-linux-gnueabihf -y;
export CARGO_BUILD_TARGET=armv7-unknown-linux-gnueabihf;
pnpm build-binding:release --use-napi-cross
# pnpm build-binding:release --zig --zig-link-only
# trigger CI

- os: ubuntu-latest
target: aarch64-linux-android
build: |
export CARGO_BUILD_TARGET=aarch64-linux-android
yarn build-binding:release
export CARGO_BUILD_TARGET=aarch64-linux-android;
pnpm build-binding:release
- os: ubuntu-latest
target: armv7-linux-androideabi
build: |
export CARGO_BUILD_TARGET=armv7-linux-androideabi
yarn build-binding:release
export CARGO_BUILD_TARGET=armv7-linux-androideabi;
pnpm build-binding:release
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
build: |-
set -e &&
rustup target add aarch64-unknown-linux-musl &&
export CARGO_BUILD_TARGET=aarch64-unknown-linux-musl &&
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-musl-gcc &&
yarn build-binding:release
set -e;
rustup target add aarch64-unknown-linux-musl;
export CARGO_BUILD_TARGET=aarch64-unknown-linux-musl;
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-musl-gcc;
pnpm build-binding:release
name: Build ${{ matrix.target }}
runs-on: ${{ matrix.os }}
steps:
Expand All @@ -113,14 +116,21 @@ jobs:
with:
version: 0.11.0

# https://github.com/nodejs/node-gyp/issues/2869
- name: Setup python
run: pip install setuptools
if: ${{ matrix.os == 'macos-latest' }}

- name: Install node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn

- name: Install pnpm
run: corepack enable

- name: Install dependencies
run: yarn install
run: pnpm install

- name: Build Binding in docker
uses: addnab/docker-run-action@v3
Expand All @@ -141,7 +151,7 @@ jobs:
with:
if-no-files-found: error
name: bindings-${{ matrix.target }}
path: crates/rolldown_binding/*.node
path: packages/rolldown/src/rolldown-binding.*.node

build-node-packages:
strategy:
Expand All @@ -152,16 +162,18 @@ jobs:
- uses: actions/checkout@v4

- name: Install node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn

- name: Install pnpm
run: corepack enable

- name: Install dependencies
run: yarn install
run: pnpm install

- name: Build Node Packages
run: yarn workspace rolldown run build
run: pnpm build:release

- name: Upload Node Artifact
uses: actions/upload-artifact@v4
Expand All @@ -182,16 +194,18 @@ jobs:
cache-base: main

- name: Install node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn

- name: Install pnpm
run: corepack enable

- name: Install dependencies
run: yarn install
run: pnpm install

- name: Build Wasm
run: yarn build-wasm:release
run: pnpm build-wasm:release

- name: Upload Wasm Artifact
uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -225,21 +239,23 @@ jobs:
submodules: true # Pull submodules for additional files

- name: Install node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn

- name: Install pnpm
run: corepack enable

- name: Install dependencies
run: yarn install
run: pnpm install

- name: Download Binding Artifacts
uses: actions/download-artifact@v4
with:
path: crates/rolldown_binding/artifacts

- name: Move Binding Artifacts
run: yarn workspace @rolldown/node-binding artifacts
run: pnpm --filter rolldown artifacts

- name: List packages
run: ls -R ./crates/rolldown_binding
Expand All @@ -252,7 +268,7 @@ jobs:
name: node-artifact

- name: Node Test
run: yarn test
run: pnpm test

publish:
name: Publish Npm Packages
Expand All @@ -266,13 +282,15 @@ jobs:
- uses: actions/checkout@v4

- name: Install node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn

- name: Install pnpm
run: corepack enable

- name: Install dependencies
run: yarn install && git reset --hard # fix yarn install add new line for package.json
run: pnpm install && git reset --hard # fix pnpm install add new line for package.json

- name: Download Wasm Artifacts
uses: actions/download-artifact@v4
Expand All @@ -286,7 +304,7 @@ jobs:
path: crates/rolldown_binding/artifacts

- name: Move Binding Artifacts
run: yarn workspace @rolldown/node-binding artifacts
run: pnpm --filter rolldown artifacts

- name: List packages
run: ls -R ./crates/rolldown_binding
Expand All @@ -298,12 +316,12 @@ jobs:
path: packages/rolldown/dist
name: node-artifact

- name: Publish
run: |
find ./packages/ -type d -maxdepth 1 -exec cp LICENSE {} \;
find ./packages/ -type d -maxdepth 1 -exec cp THIRD-PARTY-LICENSE {} \;
echo "//registry.npmjs.org/:_authToken=$ROLLDOWN_NPM_TOKEN" >> ~/.npmrc
yarn lerna publish from-package --no-private --no-git-reset --yes
env:
ROLLDOWN_NPM_TOKEN: ${{ secrets.ROLLDOWN_NPM_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: Publish
# run: |
# find ./packages/ -type d -maxdepth 1 -exec cp LICENSE {} \;
# find ./packages/ -type d -maxdepth 1 -exec cp THIRD-PARTY-LICENSE {} \;
# echo "//registry.npmjs.org/:_authToken=$ROLLDOWN_NPM_TOKEN" >> ~/.npmrc
# pnpm lerna publish from-package --no-private --no-git-reset --yes
# env:
# ROLLDOWN_NPM_TOKEN: ${{ secrets.ROLLDOWN_NPM_TOKEN }}
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
**/.git
**/node_modules
**/dist/
.yarn
packages/rollup-tests
rollup
crates
target
temp
pnpm-lock.yaml

0 comments on commit fbe32d2

Please sign in to comment.