iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
0


在我開始踏上CI時,第一個迎來的問題便是我發現我要寫.gitlab-ci.yml檔。
Yaml檔對當時的我來說這是一個陌生的存在。
我發現我看不是很懂,但又好像懂了什麼 @_@

是的Yaml檔是一種讓人容易讀懂的檔案格式,通常它做為配置文件所使用。
某種程度上他有點像Json檔案格式。

以下舉個範例.gitlab-ci.yml來談談它在告訴我們什麼

Line 1: Stages表達出我的Pipeline會有幾個階段,每個階段可以各自有多個Job。不一定要前一個階段的所有Jobs都跑完才能跑下一個階段的Job。

Line 8: .開頭的描述實際上是不會執行到的,我把它稱作hidden job,因為它本身不會執行,也不會已Job形式出現在Pipeline上面,那為什麼要寫這個呢?這是為了繼承。

Line 10: before_script意思是安排在跑Script之前執行。這邊會發現可以把比較冗長的Script抽出去成File,夠過傳遞路徑來執行。

Line 12: 這物件中的tags意思是我要給哪種Runner來做我的工作,每個Runner可以有多個Tags,所謂Tags是指圖中藍色那個方框。
一條Pipeline上可以有多個Job,但不見得只能由一台Runner來做事。我可以Job-1給Runner-A做,Job-2給Runner-B做。

Line 13, 18 : extends是指繼承了hidden job。 繼承這概念很有趣,可以多看GitLab官網的extendsmerge說明,那邊有很完整的詮釋。

Line 14: 定義這個job是在test階段。

Line 23: 定義了不同條件下該Job會自動被執行(Line 24,25),又或者是手動啟動(Line 26,27)

基本上是這樣,今天忙比較晚,就不多打字了。


上一篇
[D9] : 關於我怎麼理解CI的運作
下一篇
[D11] : Sentry Issue Level & Status
系列文
Re : 從懶開始的自動化生活30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言