🎈 Sync 2026-06-08 16:57:14

This commit is contained in:
github-actions[bot] committed 2026-06-08 16:57:14 +08:00
1 parent 60d5fc09c3
commit 196c79549d
37 files changed
+275 -10683

No files matched your search

+13 -18
View File
@@ -7,22 +7,22 @@
# openclaw-env upgrade — 升级 OpenClaw 到最新版
# openclaw-env node — 仅下载/更新 Node.js
# 环境变量:
# OC_VERSION — 指定 OpenClaw 版本 (如 2026.3.1),不设置则安装最新版
# OC_VERSION — 指定 OpenClaw 版本 (如 2026.6.1),不设置则安装已测试稳定版
# ============================================================================
set -e
# ── Node.js 版本策略 (双版本兼容) ──
# V2: 当前推荐版本,用于 OpenClaw v2026.3.22+ (要求 >= 22.14.0,使用 22.16.0 确保兼容)
# V2: 当前推荐版本,用于 OpenClaw v2026.6.1+ (要求 >= 22.19.0,使用 24.15.0 确保兼容)
# V1: 旧版兼容,用于 OpenClaw v2026.3.8 及更早版本
NODE_VERSION_V2="22.16.0"
NODE_VERSION_V2="24.15.0"
NODE_VERSION_V1="22.15.1"
# 默认使用 V2 版本 (可通过 NODE_VERSION 环境变量覆盖)
NODE_VERSION="${NODE_VERSION:-${NODE_VERSION_V2}}"
# 经过验证的 OpenClaw 稳定版本 (更新此值需同步测试)
OC_TESTED_VERSION="2026.5.12"
# OpenClaw 2026.5.x package.json engines.node 的最低要求。
OC_TESTED_VERSION="2026.6.1"
# OpenClaw 2026.6.x package.json engines.node 的最低要求。
# 如果未来上游提高要求,安装成功后还会从 package.json 再做一次强校验。
OC_NODE_MIN_VERSION="${OC_NODE_MIN_VERSION:-22.14.0}"
OC_NODE_MIN_VERSION="${OC_NODE_MIN_VERSION:-22.19.0}"
# 用户可通过 OC_VERSION 环境变量覆盖安装版本
OC_VERSION="${OC_VERSION:-}"
@@ -216,7 +216,11 @@ assert_node_runtime() {
local required="$OC_NODE_MIN_VERSION"
local from_pkg
from_pkg=$(detect_oc_node_requirement 2>/dev/null || true)
[ -n "$from_pkg" ] && required="$from_pkg"
if [ -n "$from_pkg" ] && command -v oc_node_version_ge >/dev/null 2>&1; then
if oc_node_version_ge "$from_pkg" "$required"; then
required="$from_pkg"
fi
fi
if command -v oc_assert_node_min_version >/dev/null 2>&1; then
oc_assert_node_min_version "$NODE_BIN" "$required" || exit 1
@@ -258,12 +262,8 @@ download_node() {
assert_node_runtime
return 0
fi
# ARM64 musl 使用 Alpine 打包,版本号可能不完全匹配
# 只要主版本号相同即认为兼容 (如 22.15.1 vs 22.15.0)
local cur_major=$(echo "$current_ver" | cut -d. -f1)
local want_major=$(echo "$node_ver" | cut -d. -f1)
if [ "$cur_major" = "$want_major" ]; then
log_info "Node.js v${current_ver} 已安装 (兼容 v${node_ver}), 跳过下载"
if command -v oc_node_version_ge >/dev/null 2>&1 && oc_node_version_ge "$current_ver" "$node_ver"; then
log_info "Node.js v${current_ver} 已安装 (>= v${node_ver}), 跳过下载"
assert_node_runtime
return 0
fi
@@ -285,11 +285,6 @@ download_node() {
mirror_list="${NODE_SELF_HOST}/${musl_tarball}"
# 2) unofficial-builds (留作将来可能支持)
mirror_list="$mirror_list ${NODE_MUSL_MIRROR}/v${node_ver}/${musl_tarball}"
# 3) 回退到 V1 版本 (兼容旧环境,仅当请求 V2 时)
if [ "$node_ver" = "$NODE_VERSION_V2" ]; then
local v1_tarball="node-v${NODE_VERSION_V1}-${node_arch}-musl.tar.xz"
mirror_list="$mirror_list ${NODE_SELF_HOST}/${v1_tarball}"
fi
else
# x64 musl: unofficial-builds 提供
# 1) unofficial-builds