run 9 的诊断2 已经把话说死了:
LOCALAPPDATA = C:\Users\admin\runner\windows\cache\ci-localappdata <- 重定向生效
OK ...\ci-localappdata\pnpm-store-operation-locks <- 目录能建
Error: ERR_PNPM_STORE_DIR_OPEN_OPERATION_LOCK
Failed to open the store operation lock at
"C:\Users\admin\AppData\Local\pnpm-store-operation-locks\all-stores.lock"
也就是说 LOCALAPPDATA 指走了,pnpm 还是去开原来那个路径。本机复现出真正的规则:
只改 USERPROFILE(LOCALAPPDATA 不动)、store 换成一个全新的空目录时,
<新 USERPROFILE>\AppData\Local\pnpm-store-operation-locks\all-stores.lock
<新 USERPROFILE>\AppData\Local\pnpm-store-operation-locks\<hash>.lock
立刻出现 —— pnpm 是按 <USERPROFILE>\AppData\Local 算的,跟 LOCALAPPDATA 无关。
所以在那一步里再建一个 ci-profile,把 AppData\Local / AppData\Roaming 先建好,然后
把 USERPROFILE 写进 GITHUB_ENV。文件头第 5 条同步更新。