v1.2.0:測試流程重規劃——四層架構與場地分流,涵蓋率 56 支到 79 支
推翻兩層架構與「服務類歸 infra-pve」的裁決(實測接手方從未接手),改為四個
入口三種引擎:test:lint(離線秒級)、test:pkg(podman)、test:lxc(lxc-utils
privileged 系統容器)、test:vm(qemu + 官方 cloud image)。每支安裝腳本以
verify.sh 檔首 # VERIFY_ON= 就近宣告驗證場地,harness 互斥分流。
補上 exit 77 對應的第三態,讓「什麼都沒裝卻判為通過」的假綠消失。
verify.sh 覆蓋 9 支到 79 支;system/ 22 支與 app/ 1 支首次納入測試。
實測基準(2026-08-09):
test:lint 全過 1 秒
test:pkg [OK] 46 [SKIP] 33 [FAIL] 0 64 分 4 秒
test:lxc [OK] 2 [SKIP] 77 [FAIL] 0 2 分 10 秒
test:vm [OK] 31 [SKIP] 48 [FAIL] 0 數小時
新測試層抓到並修掉 5 個真 bug:
1. vscode.txt 的 apt keyring 與官方 .sources 衝突,會讓裝過 VS Code 的機器
apt 全面拒讀來源清單
2. alpine/system/sudopw 假設 /etc/sudoers 有可取消註解的 %wheel 行,
Alpine cloud image 沒有;改寫 /etc/sudoers.d/nopasswd
3. alpine/system/enableSwap 用 util-linux 專有的 swapon --show,
busybox 沒有;改讀 /proc/swaps
4. ubuntu/package/k8s 漏裝 cri-tools,CRI-O pause 映像修補靜默不套用
5. LXC 層原設計會在 privileged 容器裡對 host 跑 swapoff -a
(設計階段攔下,4 支改歸 vm 場地)
同時把 shellcheck 與 shfmt 固化成關卡(此前只在 v1.0.0 手動掃過一次,
無守門人、已漂移 29 檔),並移除 56 張安裝方式稽核表頭。