在我開始踏上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官網的extends和merge說明,那邊有很完整的詮釋。
Line 14: 定義這個job是在test階段。
Line 23: 定義了不同條件下該Job會自動被執行(Line 24,25),又或者是手動啟動(Line 26,27)
基本上是這樣,今天忙比較晚,就不多打字了。