GitLab 13.12 釋出 - 其中跟 GitLab CI 有關的部分

GitLab 官方固定在每個月 22 日釋出新的版本,也會針對該次的釋出提供一則圖文並茂的說明;而由於墨嗓我個人對於 GitLab CI/CD 的部分相對有興趣,因此對於每次釋出的內容中,關於 GitLab CI/CD 的部分會看得特別仔細,甚至會做一些實驗。

既然做了,那就多做一點點,記錄下來,跟大家一起分享,希望對大家有些幫助。這是第一次的嘗試,沒意外的話會持續做下去。

這個月釋出的是 GitLab 13.12 版

1. Useful GitLab CI/CD information in the pipeline editor

在 pipeline 編輯器裡頭增加更多有用的 GitLab CI/CD 的資訊。如下圖,在 GitLab CI/CD 的 Editor 畫面裡,增加了右邊的這個區塊,看起來對於剛開始接觸 GitLab CI/CD 的使用者來說,提供了很多怎麼開始的訊息。
more useful gitlab ci cd information

2. Support wildcards when including YAML CI/CD configuration files

include 語法中,支援 wildcards,原本類似的名稱需要寫很多次,現在可以透過 * 號直接一次性的載入,讓 .gitlab-ci.yml 更加的簡潔。範例如下圖:


更多的細節可以參考官方的 include 說明文件

3. Show job dependencies in the pipeline graph

DAG 的功能讓 GitLab CI/CD 的工作可以不用一個 stage 一個 stage 的執行工作,讓不同 stage 之間的 job 彼此有了關聯。但在觀看 Pipeline 執行的時候,卻沒辦法看到這些工作中的關聯。在 GitLab 13.12 版中,讓 Pipeline 執行的時候也可以看到彼此的關聯性了。如下圖或影片的呈現。

4. Failed test screenshots in test report

在 GitLab CI 的過程中,當測試發生失敗時,如果可以從 Pipeline 的執行畫面中,就可以看到什麼地方錯誤,就可以減少一些查看錯誤點的時間。但如果是執行 E2E 的測試時,可能就沒辦法直接看到是什麼樣的測試情境、動作下發生錯誤。

在 GitLab 13.12 的這版本中,延伸 test report 的功能,開始支援 JUnit report 中使用 attachment 這個標籤,讓縮圖等圖像檔案可以包含在其中。

1
2
3
<testcase time="1.00" name="Test">
<system-out>[[ATTACHMENT|/absolute/path/to/some/file]]</system-out>
</testcase>

讓 test report 的內容可以直接呈現發生失敗時的畫面,使開發者可以快速的掌握到出錯的原因,加速確認問題。

Ref:

5. Code quality violation notices in MR diffs (Ultimate)

在 Ultimate 版本的 GitLab 中,在 Pipeline 執行過程中可以直接產出 Code Quality Report 並且呈現在 Pipeline 上,而有許多的功能,現在又更近一步的在觀看 MR 的過程中,就讓使用者可以直接看到違反原則的地方。

6. Group-level deployment frequency CI/CD chart (Ultimate)

直接呈現 Group 層級的部署頻率的圖表。如下圖:

7. Support variables in CI/CD pipeline ‘workflow:rules’

在 .gitlab-ci.yml 中,開始支援 workflow 語法裡頭建立自訂變數。用法如下:

1
2
3
4
5
6
7
workflow:
variables:
MY_VAR: "initial value"
rules:
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME" == "master"
variables:
MY_VAR: "hello"

如上,當 Merge Request 的目標分支是 master 的時候,變數 MY_VAR 的值為 hello 否則為 workflow 中初始的 initial value

Ref:

8. Pipeline status widget in the pipeline editor

原本 pipeline 編輯器中,無法很明確地顯示執行狀況,現在可以直接向 MR 裡頭一樣,呈現該 pipeline 的執行狀態了

在 .gitlab-ci.yml 中 release 這個關鍵字開始支援輸出連結。範例語法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
release:
stage: release
only: tags
script:
- make changelog | tee release_changelog.txt
release:
name: Release $CI_TAG_NAME
description: ./release_changelog.txt
assets:
links:
- name: cool-app.zip
url: http://my.link/1.0-$CI_COMMIT_SHORT_SHA.zip
- url: http://my.link/cool-app.exe

Ref: release:assets:links

參考連結

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器