ci: Windows 的 pnpm 安装目录改成每次运行都干净的路径
run 13 里 装 Rust 这次是好的(上次那个 panic 是两轮运行重叠、同时写 ci-rustup 造成的),
但 装 pnpm 挂了:
[Error: ENOTEMPTY: directory not empty, rmdir
'C:\Users\admin\runner\windows\cache\ci-pnpm\node_modules\.bin\store\v11\projects']
原因是这个 dest 是固定路径:pnpm 把自己算出来的 store 建在 dest 里面(就是之前日志里
那个很怪的 <dest>\node_modules\.bin\store\v11),下一轮 action 的自安装器要清掉旧目录
时,嵌套的 store\v11\projects 非空,rmdir 就失败了。
改成 ${{ github.workspace }}\..\ci-pnpm —— 落在本次运行的 work 目录里,每次都是干净的,
同时也还满足"低完整性只能写 runner 自己的工作目录"。机器上那个被污染的
cache\ci-pnpm 已经删掉。
This commit is contained in:
@@ -431,8 +431,12 @@ jobs:
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: ${{ env.PNPM_VERSION }}
|
||||
# 默认 dest 是 ~/setup-pnpm,而 ~ 是中完整性的,低完整性写不进去。
|
||||
dest: C:\Users\admin\runner\windows\cache\ci-pnpm
|
||||
# 两个原因不用默认的 ~/setup-pnpm(中完整性写不进去),也不用固定的
|
||||
# cache 目录:pnpm 会把自己算出来的 store 建在这个 dest 里面,下一次运行
|
||||
# 自安装器清理旧目录时就炸了 ——
|
||||
# ENOTEMPTY: directory not empty, rmdir '...\ci-pnpm\node_modules\.bin\store\v11\projects'
|
||||
# 所以放到本次运行的 work 目录下(每次都是干净的)。
|
||||
dest: ${{ github.workspace }}\..\ci-pnpm
|
||||
|
||||
- name: 装 Node
|
||||
uses: actions/setup-node@v4
|
||||
|
||||
Reference in New Issue
Block a user