Files
ESP32S3_vt/.github/workflows
sloray 76b96cc374
构建客户端 / 检查(类型 + 单元测试) (push) Successful in 2m42s
构建客户端 / macOS 通用(.app + .dmg) (push) Skipped
构建客户端 / Windows x64(NSIS 安装包) (push) Failing after 27s
构建客户端 / Linux x64(deb + AppImage) (push) Successful in 9m14s
ci: Windows 产物默认就编(平台开关从 vars 换成 inputs)
现象:Windows runner 明明在线、job 也确实派给了 windows-runner-01(它自己的日志:
"Runner labels: windows-latest, windows-2025, windows-2022"),但每次运行里
Windows 产物都是 skipped。

原因在 job 级 if 上:
    (github.event_name != 'workflow_dispatch' && vars.ENABLE_WINDOWS == 'true')
Gitea 的 runner 在 job 级 if 里拿不到(或拿不对)vars 上下文,条件恒为假 —— 而这个
条件写反的代价是"静悄悄不编",不看 runner 日志根本看不出来。同一份文件里
`github.event.inputs.linux != 'false'` 这个形式在 runner 日志里能看到正常求值
(evaluating expression '...' evaluated to 'true'),所以三个平台统一成这种形式:

  Linux / Windows : github.event.inputs.<平台> != 'false'   → 默认跑
  macOS           : github.event.inputs.macos == 'true'     → 默认不跑(还没有机器)

同时把 workflow_dispatch 里 windows 的默认值改成 true,并更新文件头:写清三台
runner 各自声明的标签、为什么不能拿 Linux 交叉编 Windows/macOS、以及第 4 条——
平台开关不要用仓库变量(附上这次的证据)。

runs-on 里的 vars.RUNNER_* 保持不变(标签不匹配时用它们覆盖)。
2026-10-15 21:58:02 +08:00
..