fix(deploy): pnpm 版本断言不一致时先 corepack 自愈,仍不一致则仍 fail-closed exit 1
ci/woodpecker/push/main Pipeline was successful
ci/woodpecker/push/main Pipeline was successful
This commit is contained in:
@@ -56,10 +56,16 @@ assert_pnpm_version() {
|
||||
fi
|
||||
actual="$(pnpm -v 2>/dev/null | tail -1 | tr -d '[:space:]' || true)"
|
||||
if [ "$actual" != "$expect" ]; then
|
||||
echo "❌ pnpm 版本断言失败:package.json pin=$expect,实读 pnpm -v=${actual:-<空>}"
|
||||
echo " 多为 corepack lastKnownGood 漂移(/root/.cache/node/corepack/lastKnownGood.json)"
|
||||
echo " 修法:HOME=/root corepack prepare pnpm@$expect --activate | 中止(生产未被触碰)"
|
||||
exit 1
|
||||
echo "⚠️ pnpm 版本断言不匹配:package.json pin=$expect,实读 pnpm -v=${actual:-<空>}"
|
||||
echo " 尝试自愈:corepack prepare pnpm@$expect --activate(integrity 依 packageManager 的 sha512 校验)"
|
||||
corepack prepare "pnpm@$expect" --activate >/dev/null 2>&1 || true
|
||||
actual="$(pnpm -v 2>/dev/null | tail -1 | tr -d '[:space:]' || true)"
|
||||
if [ "$actual" != "$expect" ]; then
|
||||
echo "❌ pnpm 版本断言失败(自愈未成功):pin=$expect,实读=${actual:-<空>}"
|
||||
echo " 多为 corepack lastKnownGood 漂移或离线/缓存缺失;中止(生产未被触碰)"
|
||||
exit 1
|
||||
fi
|
||||
echo " ✓ 自愈成功:pnpm $actual == package.json pin $expect"
|
||||
fi
|
||||
echo " ✓ pnpm 版本断言通过:pnpm $actual == package.json pin $expect"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user