Files
navop/script
胡飞 320bc63c01 fix(ci): R2 清理按真实输出解析版本列表
aws s3api list-objects-v2 --query "CommonPrefixes[].Prefix" --output text 对扁平
列表返回的是「一行、tab 拼接」,而清理步骤用 ^...$ 逐行锚定解析,结果恒为空,
于是存在性护栏每次都拦下删除:

  Refusing to prune: releases/<tag>/ is not present in R2

扩展仓用 gbase8s-v0.1.25 试点时就是这样失败的:一个对象都没删(护栏按设计保护
住了),但清理也从未真正执行。本地用假 S3 端点 + aws-cli 2.35.21 复现确认。

修法:列表先 tr '\t' '\n' 归一成一行一个再锚定解析(CLI 若真按行输出也不受影响),
并打印实际读到的版本,下次失败能直接从日志看到桶里有什么。

测试桩原来按「一行一个」输出,正好把真实现场的形态掩盖过去;现在桩按真实的
单行/tab 形态输出,并强制要求带 --delimiter。变异校验:去掉 tr 归一化或去掉
--delimiter,测试都会失败。
2026-10-07 09:45:41 +08:00
..
2026-02-15 11:51:18 +08:00