ci(release): bypass pnpm for tsdown package build · openclaw/openclaw@fea89cd
steipete
·
2026-05-22
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -257,17 +257,28 @@ export function createTsdownOutputScanner(params = {}) {
|
257 | 257 | |
258 | 258 | export function resolveTsdownBuildInvocation(params = {}) { |
259 | 259 | const env = resolveTsdownEnv(params.env ?? process.env); |
| 260 | +const tsdownArgs = [ |
| 261 | +"--config-loader", |
| 262 | +"unrun", |
| 263 | +"--logLevel", |
| 264 | +logLevel, |
| 265 | +"--no-clean", |
| 266 | + ...extraArgs, |
| 267 | +]; |
| 268 | +if (env.OPENCLAW_BUILD_ALL_NO_PNPM === "1") { |
| 269 | +return { |
| 270 | +command: params.nodeExecPath ?? process.execPath, |
| 271 | +args: ["node_modules/tsdown/dist/run.mjs", ...tsdownArgs], |
| 272 | +options: { |
| 273 | +stdio: ["ignore", "pipe", "pipe"], |
| 274 | +shell: false, |
| 275 | +windowsVerbatimArguments: undefined, |
| 276 | + env, |
| 277 | +}, |
| 278 | +}; |
| 279 | +} |
260 | 280 | const runner = resolvePnpmRunner({ |
261 | | -pnpmArgs: [ |
262 | | -"exec", |
263 | | -"tsdown", |
264 | | -"--config-loader", |
265 | | -"unrun", |
266 | | -"--logLevel", |
267 | | -logLevel, |
268 | | -"--no-clean", |
269 | | - ...extraArgs, |
270 | | -], |
| 281 | +pnpmArgs: ["exec", "tsdown", ...tsdownArgs], |
271 | 282 | nodeExecPath: params.nodeExecPath ?? process.execPath, |
272 | 283 | npmExecPath: params.npmExecPath ?? env.npm_execpath, |
273 | 284 | comSpec: params.comSpec ?? env.ComSpec, |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -69,6 +69,34 @@ describe("resolveTsdownBuildInvocation", () => {
|
69 | 69 | expect(result.options.env.NODE_OPTIONS).toBe("--trace-warnings --max-old-space-size=8192"); |
70 | 70 | }); |
71 | 71 | |
| 72 | +it("can run tsdown without invoking pnpm", () => { |
| 73 | +const result = resolveTsdownBuildInvocation({ |
| 74 | +nodeExecPath: "/usr/bin/node", |
| 75 | +env: { OPENCLAW_BUILD_ALL_NO_PNPM: "1" }, |
| 76 | +}); |
| 77 | + |
| 78 | +expect(result).toEqual({ |
| 79 | +command: "/usr/bin/node", |
| 80 | +args: [ |
| 81 | +"node_modules/tsdown/dist/run.mjs", |
| 82 | +"--config-loader", |
| 83 | +"unrun", |
| 84 | +"--logLevel", |
| 85 | +"warn", |
| 86 | +"--no-clean", |
| 87 | +], |
| 88 | +options: { |
| 89 | +stdio: ["ignore", "pipe", "pipe"], |
| 90 | +shell: false, |
| 91 | +windowsVerbatimArguments: undefined, |
| 92 | +env: { |
| 93 | +NODE_OPTIONS: "--max-old-space-size=6144", |
| 94 | +OPENCLAW_BUILD_ALL_NO_PNPM: "1", |
| 95 | +}, |
| 96 | +}, |
| 97 | +}); |
| 98 | +}); |
| 99 | + |
72 | 100 | it("keeps source-checkout prune best-effort", () => { |
73 | 101 | const warn = vi.spyOn(console, "warn").mockImplementation(() => {}); |
74 | 102 | const rmSync = vi.spyOn(fs, "rmSync"); |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。