Fix Windows Calamari path resolution
概要
- Windows:部署模板优先从
%ProgramData%\Squid\Tentacle\install-info.json的BinaryPath推导同目录squid-calamari.exe。安装记录损坏时会输出可见 warning,再回退到 PATH;PATH 回退使用无扩展名命令,兼容.exe、.cmd与.bat包装器。 - Linux 原生安装:Bash 模板先解析
squid-tentacle实际二进制位置并优先执行同目录的squid-calamari;保留 Docker/squid/bin与 PATH 回退。安装与升级脚本同步修正小写squid-calamari的可执行权限。 - 测试:Windows 和 Linux E2E 均渲染真实嵌入模板并通过
CalamariPayload.FillTemplate(...)执行,覆盖 flat/current 布局、损坏安装记录后的 Windows 包装器回退,以及 Linux 原生安装时 Calamari 不在 PATH 的场景。 - CI:将 Calamari 查找测试接入 Windows/Linux smoke 与 Linux 定时 E2E;变更检测覆盖生产模板和安装脚本目录。
本地验证
-
git diff --check与相关 Bash 脚本语法检查 -
CalamariPayloadBuilderTests:12/12 通过 -
CalamariLookupE2ETests:3/3 通过(macOS 仅编译、发现与非 Windows 安全短路) -
CalamariTemplate_NativeInstall_UsesBundledSiblingWithoutCalamariOnPath:1/1 通过(macOS 仅编译、发现与非 Linux 安全短路)
GitHub Actions
- Windows Lifecycle Smoke:通过
- Linux Lifecycle Smoke:通过
- E2E Upgrade Matrix 的 AlmaLinux 9、Fedora 40、Rocky Linux 9 在启动容器前失败:引用的
jrei/systemd-*Docker 镜像不存在或无访问权限,安装脚本尚未执行。 - K8s Pipeline E2E:运行中。
Closes #468 (closed)