上一轮我说"剩余中文都合理",说得太满。这三处不合理: 1. bootable/linux-setup/test-installation.sh —— 在用户的 Linux 机器上跑的 自检脚本,输出中英混杂(check "安装目录存在" ... "Directory $INSTALL_DIR") 2. issue / PR 模板 —— 贡献者第一眼看到的东西,而 CONTRIBUTING.md 已经是 英文了。顺带修掉模板里指向上游官网和上游微信的链接(那些我们控制不了), 改为指向本仓库。PR 模板加了一条"说明你在哪个平台跑过" —— 只在 Mac 上 验证过的 .bat 改动一直是本项目最主要的故障来源。 3. release.yml 的发布说明正文 —— 那是用户在 release 页面读到的文字,内容 还停留在旧产品(DeepSeek/通义、预装微信 QQ 钉钉飞书企微)。 第 3 项里还有一条**和事实相反**的建议:它让用户把 U 盘格式化成 NTFS。 macOS 对 NTFS 只读,照做正好会让"配置跟着盘走"这个核心卖点在 Mac 上 彻底失效。改为 exFAT,并说明为什么慢、以及我们如何用本机缓存补偿。 track-upstream.yml 的输入描述和输出也翻了 —— 它们会显示给手动触发 workflow 的人。
This commit is contained in:
32
.github/workflows/track-upstream.yml
vendored
32
.github/workflows/track-upstream.yml
vendored
@@ -22,11 +22,11 @@ on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
force_version:
|
||||
description: '强制使用的上游 OpenClaw 版本(留空=用 npm latest)'
|
||||
description: 'Pin a specific upstream OpenClaw version (blank = whatever npm says is latest)'
|
||||
required: false
|
||||
default: ''
|
||||
dry_run:
|
||||
description: '只检测不改动(true/false)'
|
||||
description: 'Check only, change nothing (true/false)'
|
||||
required: false
|
||||
default: 'false'
|
||||
|
||||
@@ -58,13 +58,13 @@ jobs:
|
||||
force="${{ github.event.inputs.force_version }}"
|
||||
if [ -n "$force" ]; then
|
||||
latest="${force#v}"
|
||||
echo "强制指定上游版本: $latest"
|
||||
echo "Forced upstream version: $latest"
|
||||
else
|
||||
latest="$(npm view openclaw version --registry=https://registry.npmjs.org 2>/dev/null | tr -d '[:space:]')"
|
||||
echo "npm latest openclaw: $latest"
|
||||
fi
|
||||
if [ -z "$latest" ]; then
|
||||
echo "::error::无法获取上游 openclaw 版本(npm view 失败)"
|
||||
echo "::error::Could not read the upstream openclaw version — npm view failed"
|
||||
exit 1
|
||||
fi
|
||||
echo "latest=$latest" >> "$GITHUB_OUTPUT"
|
||||
@@ -76,7 +76,7 @@ jobs:
|
||||
shell_ver="$(node -p "require('./u-claw-app/package.json').version")"
|
||||
echo "pinned=$pinned" >> "$GITHUB_OUTPUT"
|
||||
echo "shell_ver=$shell_ver" >> "$GITHUB_OUTPUT"
|
||||
echo "当前 pin: $pinned | 壳版本: $shell_ver"
|
||||
echo "Currently pinned: $pinned | shell version: $shell_ver"
|
||||
|
||||
- name: Decide whether to bump
|
||||
id: decide
|
||||
@@ -84,18 +84,18 @@ jobs:
|
||||
latest="${{ steps.upstream.outputs.latest }}"
|
||||
pinned="${{ steps.current.outputs.pinned }}"
|
||||
if [ "$latest" = "$pinned" ]; then
|
||||
echo "✅ 已是最新(pin=$pinned),无需发版。"
|
||||
echo "Already up to date (pinned=$pinned) — nothing to release."
|
||||
echo "changed=false" >> "$GITHUB_OUTPUT"
|
||||
exit 0
|
||||
fi
|
||||
# 只在 latest 严格 > pinned 时发版(避免上游撤版导致回退)
|
||||
newer="$(printf '%s\n%s\n' "$pinned" "$latest" | sort -V | tail -1)"
|
||||
if [ "$newer" != "$latest" ]; then
|
||||
echo "⚠️ npm latest ($latest) 不比当前 pin ($pinned) 新,跳过。"
|
||||
echo "npm latest ($latest) is not newer than the pin ($pinned) — skipping."
|
||||
echo "changed=false" >> "$GITHUB_OUTPUT"
|
||||
exit 0
|
||||
fi
|
||||
echo "🆕 发现上游新版: $pinned → $latest"
|
||||
echo "Upstream has moved: $pinned -> $latest"
|
||||
echo "changed=true" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Compute next shell version (patch bump)
|
||||
@@ -106,7 +106,7 @@ jobs:
|
||||
IFS='.' read -r MA MI PA <<< "$cur"
|
||||
PA=$((PA + 1))
|
||||
next="${MA}.${MI}.${PA}"
|
||||
echo "壳版本 bump: $cur → $next"
|
||||
echo "Bumping shell version: $cur -> $next"
|
||||
echo "next=$next" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Apply changes (pin + version files)
|
||||
@@ -123,7 +123,7 @@ jobs:
|
||||
# 这里写一份让 main 分支也保持一致。
|
||||
node -e "const f='u-claw-app/package.json';const p=require('./'+f);p.version='$next';require('fs').writeFileSync(f, JSON.stringify(p,null,2)+'\n')"
|
||||
|
||||
echo "已写入: OPENCLAW_VERSION=$latest, 壳版本=$next"
|
||||
echo "Wrote OPENCLAW_VERSION=$latest, shell version=$next"
|
||||
|
||||
- name: Commit, tag & push
|
||||
if: steps.decide.outputs.changed == 'true' && github.event.inputs.dry_run != 'true'
|
||||
@@ -135,10 +135,10 @@ jobs:
|
||||
git config user.email "bot@u-claw.org"
|
||||
|
||||
git add OPENCLAW_VERSION portable/OPENCLAW_VERSION u-claw-app/package.json
|
||||
git commit -m "chore(upstream): 跟随 OpenClaw $latest,发布 v$next
|
||||
git commit -m "chore(upstream): follow OpenClaw $latest, release v$next
|
||||
|
||||
自动跟踪上游:OpenClaw npm latest 升到 $latest,
|
||||
自动 bump 壳版本到 $next 并打 tag 触发发版。"
|
||||
Automated: upstream OpenClaw moved to $latest, so the shell version
|
||||
is bumped to $next and tagged, which triggers a release."
|
||||
|
||||
git push origin HEAD:main
|
||||
|
||||
@@ -146,10 +146,10 @@ jobs:
|
||||
git tag "v$next"
|
||||
git push origin "v$next"
|
||||
|
||||
echo "✅ 已推送 v$next,release.yml 将自动构建并发布。"
|
||||
echo "Pushed v$next — release.yml will build and publish it."
|
||||
|
||||
- name: Dry-run summary
|
||||
if: steps.decide.outputs.changed == 'true' && github.event.inputs.dry_run == 'true'
|
||||
run: |
|
||||
echo "🔍 DRY RUN — 不改动。"
|
||||
echo "若执行将:OPENCLAW_VERSION ${{ steps.current.outputs.pinned }} → ${{ steps.upstream.outputs.latest }},发布 v${{ steps.nextver.outputs.next }}"
|
||||
echo "DRY RUN — nothing changed."
|
||||
echo "Would set OPENCLAW_VERSION ${{ steps.current.outputs.pinned }} -> ${{ steps.upstream.outputs.latest }} and release v${{ steps.nextver.outputs.next }}"
|
||||
|
||||
Reference in New Issue
Block a user