Docs / Command Line
命令行使用指南
通過 vmpal 命令行完成 CI/CD 集成與虛擬機管理。
CI/CD
在預先準備好的虛擬機副本中運行每個 CI 任務,用完即棄。
一次性準備一台虛擬機
vmpal create download:ubuntu --name "CI Ubuntu" --wait vmpal exec "CI Ubuntu" --admin -- apt-get update vmpal exec "CI Ubuntu" --admin -- apt-get install -y build-essential git vmpal stop "CI Ubuntu"
讓它保持關機狀態。之後如需改動,先啓動、修改,再關機即可。
運行任務
vmpal run "CI Ubuntu" --copy-in .:src --copy-out src/out:./out -- /bin/sh -lc 'cd src && make test'
run 會複製虛擬機、啓動副本、拷入你的檔案、執行命令、拷出結果,然後刪除副本——即使任務失敗或被取消,副本也會被刪除。它以命令的退出狀態結束,任務隨之成功或失敗。
GitHub Actions
在 Mac 上的自託管 runner 中:
jobs:
test:
runs-on: [self-hosted, macOS, ARM64]
steps:
- uses: actions/checkout@v7
- run: vmpal run "CI Ubuntu" --copy-in .:src --copy-out src/out:./out -- /bin/sh -lc 'cd src && make test'
GitLab CI 同理:在 Mac 上使用 shell runner,並在任務腳本中寫入同樣的 vmpal run 命令。
須知
以 Mac 當前登入用戶的身份運行 CI runner,並阻止 Mac 睡眠。
Windows 啓動後停在登入界面。run 會使用 VMPal 為該虛擬機保存的密碼自動登入;若密碼失效,請在虛擬機的 設定 › 通用 › 賬戶 › 更新密碼… 中更新。Windows 命令需使用 cmd.exe 或 powershell.exe。
macOS 在一台 Mac 上最多允許同時運行兩個 macOS 虛擬機,因此 macOS 任務最多併發兩個。
vmpal help ci 可查看更多內容,或詢問你的 AI 智能體。命令速覽
全部命令一覽。vmpal help <command> 查看其選項。
虛擬機
--permanently 徹底刪除電源
--force 立即斷電虛擬機內部
<VM>:<path>快照
其他
remove-location 將其移出列表,虛擬機仍保留在原處須知規則
exec、cp、run、ui 與 sign-in 需要虛擬機的智能體控制。它預設開啓,除非被人關閉:vmpal set <VM> --agent-control on。
exec 不經 shell。需要管道和 && 時請自行啓動一個:vmpal exec "Ubuntu" -- /bin/sh -c 'make && make test'。
exec 以文本形式讀取輸出,會改變二進制輸出。拷貝二進制檔案請用 cp。
--admin 以管理員身份執行命令。
單條命令最長可運行 24 小時(--timeout),且不接受輸入。
cp 遵循 cp -R:vmpal cp . "Ubuntu:src" 會把當前資料夾的內容拷入 src。
在 Windows 中,命令在有人登入後才會執行。start --wait 與 run 會為你自動登入。