執行紀錄
每一次任務的執行,含逐步驟明細。可依狀態與執行器篩選。
保留期限是共用的:系統設定 → 建置裡的紀錄保留天數會一起清掉建置紀錄、產出檔案與稽核紀錄。
步驟
建置是一串步驟,在建置開始時規劃出來:
- 流程模式下,每個動作一個步驟。
- 腳本模式下,單一步驟。
每個步驟各自有狀態、輸出、結束碼與耗時。
失敗會怎樣
步驟失敗不會中止建置。整個計畫會跑到底,剩下的每一步依它的執行條件判斷:
| 執行條件 | 前面失敗之後 |
|---|---|
| 前面都成功才執行(預設) | 標記為 Skipped。 |
| 總是執行 | 照跑——收尾、拆除、發通知。 |
| 只在前面失敗時執行 | 照跑。 |
建置結果仍然是失敗。真正會讓建置中途停下來的只有任務逾時;開始時已經沒時間的步驟會直接以說明訊息判為失敗。
設了失敗時繼續往下執行的步驟則根本不會把建置標成失敗,後面照常進行。
重試
一個步驟最多可以設十次重試。每次都是全新的 shell,前幾次的輸出留在這次上面,所以第三次才過的步驟看得出來。重試用的是同一份任務逾時,不會延長它。
每個步驟都是獨立的 shell
步驟共用工作目錄,但不共用環境變數。要把值傳下去,往 Walis 指定的檔案追加:
echo "BUILT_VERSION=1.2.3" >> "$WALIS_ENV_FILE"下一步就讀得到 $BUILT_VERSION。這跟其他 CI 的語意一致,也避免某一步默默依賴前一步的 shell 狀態。
同時執行
步驟是等依賴跑完才開始,所以彼此不相依的就會一起跑——最多 8 步同時。 見流程是一張圖。
有多步同時在跑的期間:
- 工作目錄共用。
- 各自有獨立的
$WALIS_ENV_FILE——共用會互相蓋掉。 - 彙總日誌不即時更新(多個寫入者會交錯成亂碼),但各步驟的即時輸出照常。
- 一條分支失敗不會停掉不依賴它的分支。分支匯合的地方會被略過,並把失敗往下游傳。
步驟輸出
步驟往 $WALIS_OUTPUT_FILE 寫 name=value 的話,日誌視窗裡那一步的區塊會多一張輸出表, 列出每個名稱與值,機密值會遮蔽。
那些就是後面步驟用 ${{ steps.識別字.名稱 }} 引用的東西——見把值傳下去。
讀輸出
日誌視窗左邊列出步驟,右邊是選中步驟的輸出,標頭有觸發方式、執行器、結束碼與耗時。
建置執行中時輸出每兩秒更新一次,並自動捲到底。往上捲就停止跟隨——這樣你要看某段東西時不必跟捲軸打架。
產出檔案列在下方可供下載。AI 分析把失敗的輸出送給設定好的供應商,摘要出哪裡出錯。
任務有宣告建置參數時,這一筆用的值會顯示在標頭。password 型別顯示成 ********——值存在一個 API 永遠不會序列化的欄位,不是只在介面上藏起來。
矩陣建置
有矩陣的任務會為每個組合各產生一筆建置,各自帶著標籤,值也會注入成環境變數。上限是 50 組——四個軸各五個值就是 625 次建置,那通常不是任何人的本意。
建置快取
任務裡列出的路徑會在成功後保存,下次建置前還原。順序是刻意的:Walis 先清空工作目錄,再還原快取。反過來的話,清空會把剛還原的東西刪掉。
絕對路徑與 .. 一律忽略。