Skip to content

Fix Windows Calamari path resolution

Placeholder Nacho.L requested to merge fix/windows-calamari-path into main

概要

  • 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)

Merge request reports

Loading