用途:在运行受支持 Linux 发行版(Ubuntu、Debian、Fedora)的 Docker 容器内测试安装器二进制文件,验证安装器行为。
主要能力:提供一套端到端测试工作流——为容器平台构建安装器、启动全新容器、在容器内运行安装器、验证结果、停止容器,并对每个发行版重复该流程。
使用方式:先用 goreleaser 构建快照二进制,在 installer/ 目录执行:cd installer && goreleaser build --skip before --snapshot --clean。产物位于 installer/dist/,容器内路径形如 /workspace/installer/dist/dotfiles_installer_<os>_<arch>/dotfiles-installer。随后进入 installer/docker,用 task ubuntu:start 启动容器,通过 docker-compose exec 运行安装器,例如:docker-compose -f ubuntu/docker-compose.yml exec --user testuser installer-test-ubuntu sudo /workspace/installer/dist/dotfiles_installer_linux_arm64_v8.0/dotfiles-installer install --shell zsh --shell-source auto --non-interactive --install-prerequisites,验证后用 task ubuntu:stop 清理。也可用 docker run 绑定挂载 dist 目录运行独立容器。每个测试场景都应从全新容器开始,避免状态残留。
适用场景:验证安装器在多个 Linux 发行版上的安装流程与行为;交互式 GPG 测试可参考 testing-interactive-gpg 技能。
限制与注意事项:各发行版存在平台差异(zsh 路径、brew 行为、包管理器不同);Homebrew 首次运行会下载约 30MB 便携 Ruby,可能耗时数分钟;Fedora 首次 dnf 会同步仓库元数据(约 30MB),需耐心或设置较长超时;若 brew 报 “process has already locked”,说明上次安装被中断,应启动全新容器;长时间测试建议后台运行并轮询完成状态,而非设置超长超时。