Walis 是什麼
Walis 是給單一台機器用的 CI/CD。它依排程、webhook 或你按下按鈕來執行 shell 腳本,並保留日誌。
它刻意做得比 Jenkins 與 Woodpecker 少。差別在於它不要求什麼。
Walis 的取捨
| Jenkins | Woodpecker | Walis | |
|---|---|---|---|
| 需要 Git forge | 否 | 是 | 否 |
| 需要容器 | 否 | 實務上是 | 選用 |
| 執行端要裝 runtime | JVM | 容器執行環境 | 不用 |
| 流程定義放在 | UI 或 Jenkinsfile | 只能是 repo 的 YAML | UI,可匯出成 JSON |
| 外掛隔離 | 沒有 | 容器 | JavaScript 沙箱 |
Jenkins 什麼都做得到,是因為外掛跟核心在同一個 JVM 裡且沒有沙箱——這也是為什麼一個壞掉的外掛 可以拖垮整台 controller。Woodpecker 的隔離是免費的,因為每一步都是容器——代價是綁死 forge 與容器環境。
Walis 走第三條路:限制外掛的輸出形式,而不是限制它跑在哪。外掛回傳一段 shell, 你在安裝前就讀得到。
它不是什麼
- 不是叢集。 一台機器、SQLite、沒有 HA。有遠端執行器,但伺服器是單一程序。
- 不是 Git 主機。 用 webhook 指向你的 repo,或者跑根本沒有 repo 的任務。
- 不是容器平台。 它執行 shell;要用容器,讓你的腳本自己去啟動。