Skip to content

Commit 78d9807

Browse files
committed
feat: add rolldown and rolldown-vite as sub packages
1 parent d9fd255 commit 78d9807

17 files changed

Lines changed: 9982 additions & 2129 deletions

File tree

.github/workflows/release.yml

Lines changed: 73 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,18 @@ jobs:
2929
persist-credentials: false
3030
submodules: true
3131

32+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
33+
with:
34+
repository: rolldown/rolldown
35+
path: rolldown
36+
ref: main
37+
38+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
39+
with:
40+
repository: vitejs/rolldown-vite
41+
path: rolldown-vite
42+
ref: rolldown-vite
43+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
3244
- uses: oxc-project/setup-rust@d286d43bc1f606abbd98096666ff8be68c8d5f57 # v1.0.2
3345
with:
3446
save-cache: ${{ github.ref_name == 'main' }}
@@ -37,6 +49,10 @@ jobs:
3749
- name: Rustup Adds Target
3850
run: rustup target add ${{ matrix.settings.target }}
3951

52+
- name: Rustup Adds Target for rolldown
53+
working-directory: rolldown
54+
run: rustup target add ${{ matrix.settings.target }}
55+
4056
- name: Add musl target (x86_64)
4157
if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }}
4258
run: rustup target add x86_64-unknown-linux-musl
@@ -45,35 +61,68 @@ jobs:
4561
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
4662
run: rustup target add aarch64-unknown-linux-musl
4763

64+
- name: Add rolldown host target
65+
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
66+
working-directory: rolldown
67+
run: rustup target add x86_64-unknown-linux-gnu
68+
4869
- uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4
4970

71+
- name: Build host rolldown
72+
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
73+
run: pnpm --filter rolldown build-binding:release --target x86_64-unknown-linux-gnu
74+
5075
- name: Set binding version
5176
run: pnpm exec tool replace-file-content packages/cli/binding/Cargo.toml 'version = "0.0.0"' 'version = "0.0.0-${{ github.sha }}"'
5277

5378
- name: Build
5479
if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }}
55-
run: pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }} --use-napi-cross
80+
run: |
81+
pnpm --filter @rolldown/pluginutils build
82+
pnpm --filter rolldown build-binding:release --target ${{ matrix.settings.target }} --use-napi-cross
83+
pnpm --filter rolldown build-node
84+
pnpm --filter rolldown-vite build-types
85+
CC="x86_64-unknown-linux-gnu-cc" pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }} --use-napi-cross
5686
env:
57-
CC: x86_64-unknown-linux-gnu-cc
5887
TARGET_CC: clang
5988

6089
- name: Build
6190
if: ${{ matrix.settings.target == 'aarch64-unknown-linux-gnu' }}
62-
run: pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }} --use-napi-cross
91+
run: |
92+
pnpm --filter @rolldown/pluginutils build
93+
pnpm --filter rolldown build-binding:release --target ${{ matrix.settings.target }} --use-napi-cross
94+
pnpm --filter rolldown build-node
95+
pnpm --filter rolldown-vite build-types
96+
pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }} --use-napi-cross
6397
env:
6498
TARGET_CC: clang
6599

66100
- name: Build
67101
if: ${{ !contains(matrix.settings.target, 'linux') }}
68-
run: pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }}
102+
run: |
103+
pnpm --filter @rolldown/pluginutils build
104+
pnpm --filter rolldown build-binding:release --target ${{ matrix.settings.target }}
105+
pnpm --filter rolldown build-node
106+
pnpm --filter rolldown-vite build-types
107+
pnpm --filter=@voidzero-dev/vite-plus build --target ${{ matrix.settings.target }}
69108
70-
- name: Upload artifact
109+
- name: Upload Vite+ artifact
71110
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
72111
with:
73-
name: bindings-${{ matrix.settings.target }}
112+
name: vite-plus-native-${{ matrix.settings.target }}
74113
path: ./packages/cli/binding/*.node
75114
if-no-files-found: error
76115

116+
- name: Upload rolldown artifact
117+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
118+
with:
119+
name: rolldown-native-${{ matrix.settings.target }}
120+
path: ./rolldown/packages/rolldown/src/*.node
121+
if-no-files-found: error
122+
- name: Remove .node files before upload dist
123+
if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }}
124+
run: rm ./packages/cli/dist/**/*.node
125+
77126
- name: Upload cli dist
78127
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
79128
if: ${{ matrix.settings.target == 'x86_64-unknown-linux-gnu' }}
@@ -93,11 +142,19 @@ jobs:
93142
with:
94143
persist-credentials: false
95144
submodules: true
145+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
146+
with:
147+
repository: rolldown/rolldown
148+
path: rolldown
149+
ref: main
96150

97-
- uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4
151+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
152+
with:
153+
repository: vitejs/rolldown-vite
154+
path: rolldown-vite
155+
ref: rolldown-vite
98156

99-
- name: Bootstrap
100-
run: pnpm bootstrap-cli:ci
157+
- uses: oxc-project/setup-node@fdbf0dfd334c4e6d56ceeb77d91c76339c2a0885 # v1.0.4
101158

102159
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
103160
with:
@@ -108,7 +165,13 @@ jobs:
108165
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
109166
with:
110167
path: packages/cli/dist
111-
pattern: bindings-*
168+
pattern: vite-plus-native-*
169+
merge-multiple: true
170+
171+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
172+
with:
173+
path: packages/cli/dist/vite
174+
pattern: rolldown-native-*
112175
merge-multiple: true
113176

114177
- name: Set npm packages version

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,7 @@ dist
44
.claude/settings.local.json
55
*.tsbuildinfo
66
.DS_Store
7+
rolldown/pnpm-lock.yaml
8+
rolldown/pnpm-workspace.yaml
9+
rolldown
10+
rolldown-vite

crates/vite_task/src/config/task_command.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ impl From<TaskCommand> for TaskConfig {
4242

4343
impl TaskCommand {
4444
pub fn need_skip_cache(&self) -> bool {
45-
matches!(self, Self::Parsed(parsed_command) if parsed_command.program == "vite" || (parsed_command.program.ends_with("vite.js") && parsed_command.args.first() == Some(&("dev".into()))))
45+
matches!(self, Self::Parsed(parsed_command) if parsed_command.program == "vite" || (parsed_command.program.ends_with("vite/node/vite") && parsed_command.args.first() == Some(&("dev".into()))))
4646
}
4747

4848
// Whether the command starts a inner runner.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "vite-plus-monorepo",
33
"license": "BUSL-1.1",
44
"private": true,
5-
"packageManager": "pnpm@10.17.1",
5+
"packageManager": "pnpm@10.19.0",
66
"engines": {
77
"node": "^20.19.0 || >=22.12.0"
88
},

packages/cli/binding/src/lib.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,14 @@ pub async fn run(options: CliOptions) -> Result<i32> {
150150
let resolved = vite
151151
.call_async(Ok(()))
152152
.await
153+
.inspect_err(|err| {
154+
tracing::error!("vite error: {:?}", err);
155+
})
153156
.map_err(js_error_to_vite_error)?
154157
.await
158+
.inspect_err(|err| {
159+
tracing::error!("vite error: {:?}", err);
160+
})
155161
.map_err(js_error_to_vite_error)?;
156162

157163
Ok(resolved.into())

0 commit comments

Comments
 (0)