在 GitHub Actions 中调试虚拟机
使用 OS Distro QEMU Test workflow 可以在支持的 Linux 虚拟机中测试分支,
无需在本地准备虚拟机。
准备 Fork 仓库
- Fork 仓库,并在 fork 仓库的 Actions 页面启用 workflows。
- 将 SSH 公钥添加到 GitHub 账号。只有启动 workflow 的用户 可以连接。
- 将需要调试的分支 push 到 fork 仓库。
启动虚拟机
- 在 fork 仓库中打开 Actions > OS Distro QEMU Test > Run workflow。
- 选择需要调试的分支。
- 保留默认值
ubuntu24.04、填写以逗号分隔的多个发行版,或者使用all选择所有支持的发行版。 - 在 Debug VM 选项中选择保留虚拟机的时机和时长。
- 启动 workflow,并打开对应的
Test in VMjob。
如果没有 Run workflow 按钮,请先同步 fork 仓库的默认分支。GitHub 只会 显示默认分支中存在的手动 workflow。
选择 Before test 可以在测试前检查或修改虚拟机;选择 After test on failure 可以排查失败测试;选择 After test always 会在测试结束后保留 虚拟机。
连接虚拟机
打开 job 中的 Debug VM: Retain ... step,并按日志提示操作:
- 在本地终端运行日志中的完整 SSH 命令,连接 GitHub runner。
- 在 runner 中运行日志中的
ssh -i ... root@<VM_IP>命令,进入虚拟机。
日志中的命令已经包含正确的密钥路径和虚拟机地址,直接复制即可。
结束调试
退出虚拟机,然后在 runner 中释放 workflow:
cd "$GITHUB_WORKSPACE"
touch continue
workflow 随后继续执行测试或清理。仅断开 SSH 不会释放 workflow;如果不执行 上述命令,workflow 会一直等待到所选保留时间结束。