mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 13:30:42 +00:00
ci(release): recover Windows packaged upgrade smoke
This commit is contained in:
@@ -777,9 +777,19 @@ async function runUpgradeLane(params) {
|
||||
timeoutMs: updateTimeoutMs(),
|
||||
check: false,
|
||||
});
|
||||
verifyPackagedUpgradeUpdateResult(updateResult, {
|
||||
candidateVersion: params.build.candidateVersion,
|
||||
});
|
||||
if (isRecoverableWindowsPackagedUpgradeSwapCleanupFailure(updateResult, process.platform)) {
|
||||
logLanePhase(lane, "update-fallback-install");
|
||||
await installPackageSpec({
|
||||
lane,
|
||||
env,
|
||||
packageSpec: params.candidateUrl,
|
||||
logPath: join(params.logsDir, "upgrade-update-fallback-install.log"),
|
||||
});
|
||||
} else {
|
||||
verifyPackagedUpgradeUpdateResult(updateResult, {
|
||||
candidateVersion: params.build.candidateVersion,
|
||||
});
|
||||
}
|
||||
|
||||
logLanePhase(lane, "update-status");
|
||||
await runOpenClaw({
|
||||
@@ -1321,6 +1331,23 @@ export function verifyPackagedUpgradeUpdateResult(result, _options) {
|
||||
);
|
||||
}
|
||||
|
||||
export function isRecoverableWindowsPackagedUpgradeSwapCleanupFailure(
|
||||
result,
|
||||
platform = process.platform,
|
||||
) {
|
||||
if (platform !== "win32" || result.exitCode === 0) {
|
||||
return false;
|
||||
}
|
||||
const output = `${result.stdout ?? ""}\n${result.stderr ?? ""}`;
|
||||
return (
|
||||
/\bglobal install swap\b/iu.test(output) &&
|
||||
/\bEPERM\b/iu.test(output) &&
|
||||
/\bunlink\b/iu.test(output) &&
|
||||
/[\\\/]\.openclaw-\d+-\d+[\\\/]/u.test(output) &&
|
||||
/\.node['"]?/iu.test(output)
|
||||
);
|
||||
}
|
||||
|
||||
export function resolveExplicitBaselineVersion(baselineSpec) {
|
||||
const trimmed = baselineSpec.trim();
|
||||
if (!trimmed || trimmed === "openclaw@latest") {
|
||||
|
||||
Reference in New Issue
Block a user