iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
DevOps

GitLab CI 2025:深入玩轉流水線與實戰紀錄系列 第 24

Day24 - 線上撰寫 GitLab CI/CD YAML 的神兵利器 Pipeline Editor

  • 分享至 

  • xImage
  •  

在 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 編輯器使用。

那它有哪些功能值得推薦呢? 請接著看下去。

Pipeline Editor 如何使用

撰寫內文的當下,目前 GitLab (18.4) 直接內建 Pipeline Editor,它就在 Build > Pipeline editor 裡。點開來之後,你可以在這個編輯器上:

  • 選擇 Git 分支編輯 CI/CD YAML 。
  • 在編輯時即時的驗證 CI/CD YAML 的語法。
  • 即使 YAML 檔案裡頭透過 include YAML 檔案,也可以順利的驗證 include 之後 YAML 的內容是否正確配置。
  • 檢視使用 include 進來的 CI/CD YAML 檔案清單。
  • 視覺化呈現目前的 CI/CD YAML 配置。
  • 在 Pipeline Editor 上,可以直接編輯 CI/CD YAML,而後直接 Commit 到指定的 Git 分支。

Pipeline editor 編輯介面

在 Pipeline Editor 上編輯,可以即時的得到語法的回饋,並且直接呈現在上方

以畫面上的範例來說,輸入的檔案名稱副檔名輸入錯誤,將 yml 誤植為 yaml,因此找不到檔案,在上方的錯誤資訊直接的就呈現找不到檔案。

Pipeline editor lint 回饋

可以直接在分支上調整並且 Commit 到指定的 Git 分支,甚至直接建立新的 merge request

以畫面上的範例舉例,預設是開啟的分支直接進行 commit,但 Branch 這個欄位可以手動編輯,當輸入到不同名稱的分支時,下方會增加一個 Check Box ,讓使用者可以直接建立 merge request。

直接呈現 merge request 方便調整及建立

視覺化的呈現 CI/CD YAML Pipeline 的配置

視覺化呈現 Pipeline 的配置

以圖上的範例 Job 名稱是動態產生的,在視覺化呈現的這個介面,也會協助解析後,呈現正確的 Job 名稱。

可以在不同的分支進行 CI/CD YAML 的驗證(GitLab 18.4)

在不同的分支進行 CI/CD YAML 的驗證

單純點選 Validate pipeline 時,預設是目前開啟的分支,但有時候編輯 Pipeline 會希望確認某些語法,在特定的分支上是否還可以正確執行,可以切換分支的這個功能,就相當的方便。以上面的案例來說,由於只有特定分支有 my-super-linter.yml 這個檔案,當切換到其他分支,再點選 Validate pipeline 時,就會直接出錯錯誤訊息。

TODO: day24_06_PipelineEditor.png
直接呈現錯誤訊息

可以協助將 include 後的 YAML 檔整合在一起後,在 full configuration 中完整呈現。

這邊以 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

呈現完整編譯後的內容

在 Commit 之後,上方會直接呈現目前所在的 Git Branch 目前最新的 Pipeline 執行連結及呈現目前 Pipeline 狀態

直接呈現 Pipeline 狀態,對於正在編輯 CI/CD YAML 來說,相當方便,有時候編輯的過程中需要知道該分支,當下正在執行的 Pipeline 執行狀態,透過這個呈現,就可以最快速的知道目前現狀。

呈現 Pipeline 執行狀態

Pipeline editor 使用上的限制

目前的 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 的基本編輯及狀態確認,非常的方便,一定要嘗試使用看看,我是墨嗓(陳佑竹),期待這次的內容能帶給你實用的啟發與幫助。

參考連結


上一篇
Day23 - 讓 Pipeline 的所有 Job 都在同一個 Runner 執行 - 2
下一篇
Day25 - Pipeline 需要注意的安全議題
系列文
GitLab CI 2025:深入玩轉流水線與實戰紀錄29
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言