Files
ESP32S3_vt/.github
sloray 6f83ebbe3c
构建客户端 / 检查(类型 + 单元测试) (push) Successful in 1m27s
构建客户端 / macOS 通用(.app + .dmg) (push) Skipped
构建客户端 / Windows x64(NSIS 安装包) (push) Failing after 12s
构建客户端 / Linux x64(deb + AppImage) (push) Successful in 6m4s
ci: 修 Windows job 第二个坑 —— TEMP/TMP 为空,Git Bash 的 mktemp 写不进 <Git>\tmp
run 4 里 bash 已经换成 Git for Windows(那一步本身就成功了),但 dtolnay/rust-toolchain
还是挂在它的脚本里:

    log=$(mktemp)
    mktemp: failed to create file via template '/tmp/tmp.XXXXXXXXXX': Permission denied

原因:这个 job 的环境里 TEMP/TMP 是空的,而 Git Bash 的 /tmp 是从 TEMP 推出来的;
没有 TEMP,MSYS 就退回 <Git 安装目录>\tmp(C:\Program Files\Git\tmp,实测存在),
那个目录普通权限写不进去 —— mktemp 于是 Permission denied,不是"没目录"也不是
"没权限建文件"那么直白。

本机(就是这台 runner)复现 + 验证:
    清空 TEMP/TMP                -> mktemp: ... Permission denied(与 CI 一字不差)
    TEMP/TMP 指向可写目录        -> mount 显示 "... on /tmp",mktemp 正常
                                    rustup toolchain install / target add 也全过

修法:把 Windows job 里"改 PATH 那一步"扩成同时安排临时目录 —— 在 workspace 的同级
建 ci-tmp,把 TEMP/TMP/TMPDIR 写进 GITHUB_ENV,后续步骤(包括 composite action 内部
的 bash)都用它。
2026-10-15 22:21:36 +08:00
..