接著終於要進入我們的正題 CI 了.
在 GitLab 中,我們可以透過一個叫做 .gitlab-ci.yml
(注意,最前面有一個點)的檔案來控制我們 CI 的流程,並且定義我們 CI 中需執行哪些動作.
那就廢話不多說,我們先來看看最基本的 .gitlab-ci.yml
該如何寫吧.
.gitlab-ci.yml
stages:
- "build"
- "test"
- "deploy"
build_job:
stage: build
script:
- echo Build OK
test_job:
stage: test
script:
- echo Test OK
deploy_job:
stage: deploy
script:
- echo Deploy OK
dependencies:
- "test_job"
only:
- master
在這個檔案中,我們可以將整個檔案分為兩部分。
第一部分是 stages
的區塊,裡面使用了列表定義每個階段的名稱及階段之間的順序,構成我們 CI 的 Pipeline ,而 GitLab 在我們 Push 程式碼上去之後,就會觸發並按照 Pipeline 執行各階段的工作。
第二部分則是下方的各個 Job ,每個 Job 都會運行在 Pipeline 中的某個 Stage ,並執行某些指令。
而我們這個 .gitlab-ci.yml
只簡單的做了三件事情,就是輸出一下文字而已(因為我偷懶,懶得弄個小 Demo 來玩 CI/CD )。
首先我們第一階段是 build ,通常這階段我們可以準備一下環境,安裝一下等等需要的套件,需要編譯的也可以在這邊編譯。
第二階段是 test ,這部分我們可以進行單元測試及其他的測試,並且可以設定如果測試不通過便產生 Failed ,這時 Pipeline 便會被中斷,我們就可以進行修復我們程式中發生錯誤的地方。
第三階段則是 deploy ,也就是 CD 的部分,我們需要在這部分連接至我們的伺服器,並透過指令進行部署(大概就是你部署伺服器時所下的那些指令,不過我想跟前面文章介紹的 Kubernetes 連結起來,因此這部分不多作介紹)。
那麼就先到這邊, .gitlab-ci.yml
最基本大概就是這樣,話說我本來介紹 CI/CD 是想講如何跟 Kubernetes 集群作連接,可是好像來不及在 30 天內講完了。
大家掰~掰~