用途:该技能通过 expect 脚本(installer/test-interactive-gpg.exp)自动化安装器的交互式 GPG 密钥设置流程,用于端到端测试 GPG 密钥生成。
主要能力:脚本以 install --plain --install-prerequisites=true --git-clone-protocol=https 启动安装器,进入 expect 循环,用正则匹配 GPG 提示:邮箱、姓名、口令按传入参数应答;密钥类型、长度、有效期接受默认值(RSA、默认长度、无过期);注释字段留空跳过;确认提示发送 O;错误记录后继续;超时 300 秒后失败。脚本以安装器退出码退出。
使用方式:需先确认 expect 可用,否则安装:macOS 用 brew install expect,Ubuntu/Debian 用 sudo apt-get install expect,Fedora 用 sudo dnf install expect。在 installer/ 目录运行:./test-interactive-gpg.exp [installer_path] [email] [name] [passphrase] [branch] [verbosity]。参数均可选,默认分别为 ./dotfiles-installer、test-user@example.com、Test CI User、test-ci-passphrase、空、空。
适用场景:GPG 密钥生成端到端测试;结合 testing-e2e-containers 在 Docker 容器中测试,先 goreleaser build --skip before --snapshot --clean,再 task ubuntu:start,复制或挂载脚本运行,最后 task ubuntu:stop。
限制:GPG 提示文本随版本变化,需调整正则;容器中 GPG 报错属预期;熵不足时密钥生成可能超时,可用 rng-tools 或 haveged;调试可设 exp_internal 1。其余细节暂未提供。