從 Jenkins 匯入
建置任務 → 從 Jenkins 匯入把 Jenkinsfile 或任務的 config.xml 轉成一份 Walis 任務草稿。 在你按下儲存之前,資料庫什麼都不會寫。
這一頁是操作流程。哪些轉得過去、哪些轉不了,見對應表。
1 · 貼上
貼上內容,或從檔案選。宣告式與腳本式的 Jenkinsfile 都可以,freestyle 或 matrix 專案的 config.xml 也可以。
任務名稱可以留空,到編輯器再填。從檔案選的話會用檔名當名稱——除非那個檔案就叫 Jenkinsfile 或 config.xml,那種名字當任務名稱不好用。
TIP
Jenkins 匯出的 config.xml 開頭是 XML 1.1 宣告,貼上前先改成 1.0。
2 · 預覽
按預覽會轉換並把結果攤開給你看。這只是一份唯讀的草稿——背後的 API 端點不寫任何東西。
標頭有偵測到的格式、任務名稱,以及轉換器推導出來的觸發方式、逾時與併發設定,右邊是依嚴重度分類的警告數量。
步驟
每個 stage 變成一個步驟,只要不是單純依序執行的 shell 命令,就會帶標籤:
| 標籤 | 意思 |
|---|---|
| 平行 | 與前一步同時執行,因為兩者互不相依——來自 parallel 區塊。 |
| 總是、失敗時 | 步驟的執行條件——來自 post { always } 或 post { failure }。 |
| 重試 N 次 | 來自 retry(n)。 |
| 一個映像名稱 | 這一步在容器裡跑——來自 agent { docker }。 |
巢狀 stage 的名稱是「父 / 子」,所以 Test 底下的 Unit 會顯示成 Test / Unit。
右邊那一欄
步驟以外的東西都在這裡:建置參數、環境變數、下游任務、產出檔案路徑。
標著機密,待填的變數沒有值。Walis 讀不到 Jenkins 的憑證,只知道有人引用了它—— 旁邊會標出 Jenkins 的憑證識別碼當來源,你才知道要填什麼進去。
警告
| 嚴重度 | 意思 |
|---|---|
| 提示 | 對應到了,但語意有一點不同。看一眼就好。 |
| 需要處理 | 對應到了,但需要你補東西——機密、存在的執行器、儲存庫網址。 |
| 不支援 | 沒有對應功能。原文會留在腳本裡當註解。 |
沒有東西會被安靜丟掉。剖析器看不懂的區塊會原樣保留、輸出成註解, 所以你拿到的是一個「看得見缺口」的任務,不是一個默默少了一步的任務。
3 · 在編輯器中開啟
按在編輯器中開啟會把草稿交給任務編輯器, 頁面頂端有一條藍色提示說這是從 Jenkins 匯入的草稿、還沒有儲存。
全部都可以改。警告指出來的東西就在這個時候處理——這裡不存在的執行器名稱、 Jenkinsfile 裡沒有的儲存庫網址、需要人工改寫的 when 運算式。
4 · 建立任務
按建立任務就跟一般任務一樣存起來,並額外建立匯入建議的任務專屬環境變數。
有值的變數會連值一起建立。機密的會建成空的,並用一則警告把名字列出來,讓你知道還有哪幾個在等。 在填進去之前,建置會拿著空值跑——通常不是一開始就失敗,而是跑到用那個憑證的地方才失敗。
存完之後就看不出來源了,它就是一個普通的 Walis 任務。