從先前的文章我們知道如果要使用 GitLab CI/CD,需要在專案的根目錄新增一個 gitlab-ci.yml
並撰寫腳本,接下來要講的就是該檔案的內容,應當如何設計與編寫。最後,在正式開始前要請各位先自行安裝 Git 才能完成完整的練習。
git clone {網址}
,接著 cd {專案名稱}
進入專案根目錄,接著就可以開始編寫 .gtilab-ci.yml
腳本範例
job1:
script:
- echo "Hello, GitLab CI !!"
指令參考
GitLab > CI/CD > 管線
中看到腳本被運行成功或失敗通常腳本不會這麼簡單,尤其要實現完整的 CI > CD 的完整過程,這時就會利用到腳本中的 stage
,這可以幫助我們定義每個 job 分布在哪個 stage,不同的 Stage 會依次執行,而存在同一次 Stage 中的 Job 有可能同時執行,示意圖如下:
需要留意的是不同的 Job 有可能分布在不同的 Executor,所以在沒有利用緩存機制(Cache, Artifacts)的情況下,無論是 Job 或 Stage 之間的資料都是不共通的。
腳本範例
stages:
- build
- test
job1:
stage: build
script:
- echo "Build, ok"
job2:
stage: test
script:
- echo "Test, ok"
在實務上專案在進行建構、測試和佈署時,通常會需要相應的軟體,舉例來說 Java 就需要 JDK。如果每次的建構都要在指令中,撰寫安裝的指令,整體的時間會變得很長,而且腳本會變得難以維護。
這時 Docker 的功效就出來了,使用 image
可以指定 Job 在哪個 Docker image 中運行,這樣就變的非常方便,可以選擇相對應的 image 運行。image 屬性可以被設定在最外層,這會使得沒有設定 image 的 Job 預設使用該 image。
腳本範例
image: docker:stable
stages:
- build
- test
job1:
stage: build
image: python:3.7
script:
- echo "Build, ok"
job2:
stage: test
script:
- echo "Test, ok"
運行結果
通過幾個簡單的練習,是否有覺得 GitLab CI 更加理解了呢?
總結幾個重點:
就是個簡單三步驟
另外一提 GitLab 在管線畫面中有個 CI lint 是個驗證腳本的工具,對於還不熟悉腳本的朋友,可以多試著使用看看會有所幫助。