執行器
執行器就是建置可以跑的地方。Walis 內建一台。
本機執行器
local 跑在 API 程序內。它的併發數來自系統設定 → 建置的同時建置上限——插槽數反映的就是這個值。
遠端代理
walis-runner 是自帶執行檔,目標機器不必安裝任何執行環境:
bash
walis-runner \
--server https://walis.example.com/ \
--name builder-01 \
--labels linux,docker代理程式輪詢並以 POST /api/runners/{name}/claim 認領工作——回應裡包含伺服器已經規劃好的步驟——接著逐步回報輸出與結果,最後收尾。產出檔案另外上傳。
步驟迴圈本機與遠端是同一份程式(Walis.Core 的 BuildStepSequence),差別只在寫資料庫還是送 HTTP。所以步驟在遠端代理上的行為,跟在 API 節點上一模一樣。
插槽、標籤與心跳
| 概念 | 意義 |
|---|---|
| 插槽 | 這台執行器同時接幾個建置。 |
| 標籤 | 自由標記,如 macos、arm64、docker。純描述用。 |
| 心跳 | 每分鐘回報。超過五分鐘沒消息就標記離線。 |
執行器離線可以觸發通知。暫停接單用來排空一台執行器而不刪掉它:正在跑的建置會跑完,新的不再認領。
指定給離線執行器的工作
指定給未連線執行器的建置會留在佇列,不會被改派,也不會被丟掉。這是刻意的——指定要在有簽章金鑰那台機器上跑的任務,就該等那台機器,而不是默默跑到別處去——但也代表一個排不掉的佇列,通常就是某台執行器沒回來。