在 GitLab 13.x 版本的年代,編輯 GitLab CI/CD YAML 幾乎只能在 Git Commit & Push Source Code 之後,才能夠知道編輯的 YAML 有沒有語法上的問題,但,有些時候難免會有一些小失誤,這時候就需要修正之後再次的 Commit & Push,而後反覆進行,其實不是太有效率。後來,在後期的版本 GitLab 推出了 CI Lint API及 CI Lint 工具,只要在 Commit 前,貼入 Lint 工具中檢核,就可以知道問題,這稍微舒緩了需要反覆 Commit & Push 才能知道有沒有語法上的問題。
直到更後面的版本 GitLab 正式推出 Pipeline Editor,且隨著版本的演進,越來越實用,最近一兩年,甚至會直接在線上使用 Pipeline Editor 作為主要的 GitLab CI/CD YAML 編輯器使用。
那它有哪些功能值得推薦呢? 請接著看下去。
撰寫內文的當下,目前 GitLab (18.4) 直接內建 Pipeline Editor,它就在 Build > Pipeline editor 裡。點開來之後,你可以在這個編輯器上:
以畫面上的範例來說,輸入的檔案名稱副檔名輸入錯誤,將 yml 誤植為 yaml,因此找不到檔案,在上方的錯誤資訊直接的就呈現找不到檔案。
以畫面上的範例舉例,預設是開啟的分支直接進行 commit,但 Branch 這個欄位可以手動編輯,當輸入到不同名稱的分支時,下方會增加一個 Check Box ,讓使用者可以直接建立 merge request。
以圖上的範例 Job 名稱是動態產生的,在視覺化呈現的這個介面,也會協助解析後,呈現正確的 Job 名稱。
單純點選 Validate pipeline 時,預設是目前開啟的分支,但有時候編輯 Pipeline 會希望確認某些語法,在特定的分支上是否還可以正確執行,可以切換分支的這個功能,就相當的方便。以上面的案例來說,由於只有特定分支有 my-super-linter.yml
這個檔案,當切換到其他分支,再點選 Validate pipeline 時,就會直接出錯錯誤訊息。
TODO: day24_06_PipelineEditor.png
這邊以 Day01 的範例來舉例,原始的範例是使用來自外部的 CI/CD Component,透過 Full configuration,可以看到載入後,解開之後的樣貌,這對於很多除錯時刻,非常的有幫助。
include:
- component: $CI_SERVER_FQDN/mo-playground/gitlab-ci-example-2025/hello-component-2025/my-component@384cbe6028c44ae286c3d3a9e2f71276c6132510
inputs:
stage: build
- component: $CI_SERVER_FQDN/mo-playground/gitlab-ci-example-2025/hello-component-2025/my-component@v1.0.0
inputs:
stage: build
job_name: job_from_version
直接呈現 Pipeline 狀態,對於正在編輯 CI/CD YAML 來說,相當方便,有時候編輯的過程中需要知道該分支,當下正在執行的 Pipeline 執行狀態,透過這個呈現,就可以最快速的知道目前現狀。
目前的 Pipeline Editor 僅限於編輯 .gitlab-ci.yml
這大概是他最大的限制。對於比較大型複雜的 GitLab CI/CD YAML 來說,並不會把所有的 CI/CD YAML 都放置於 .gitlab-ci.yml
檔案中,這時候編輯 .gitlab-ci.yml
如果需要跨到其他檔案編輯,就相對不符使用。
雖然有跨檔案編輯上的限制,但一般情境來說,直接使用 Pipeline editor 編輯 .gitlab-ci.yml
可以說已經融入我個人平常工作的流程之中,透過他可以快速的確認 .gitlab-ci.yml
的基本編輯及狀態確認,非常的方便,一定要嘗試使用看看,我是墨嗓(陳佑竹),期待這次的內容能帶給你實用的啟發與幫助。