Skip to content

執行器

執行器

執行器就是建置可以跑的地方。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.CoreBuildStepSequence),差別只在寫資料庫還是送 HTTP。所以步驟在遠端代理上的行為,跟在 API 節點上一模一樣。

插槽、標籤與心跳

概念意義
插槽這台執行器同時接幾個建置。
標籤自由標記,如 macosarm64docker。純描述用。
心跳每分鐘回報。超過五分鐘沒消息就標記離線。

執行器離線可以觸發通知暫停接單用來排空一台執行器而不刪掉它:正在跑的建置會跑完,新的不再認領。

指定給離線執行器的工作

指定給未連線執行器的建置會留在佇列,不會被改派,也不會被丟掉。這是刻意的——指定要在有簽章金鑰那台機器上跑的任務,就該等那台機器,而不是默默跑到別處去——但也代表一個排不掉的佇列,通常就是某台執行器沒回來。

以 MIT 授權釋出。