GitLab CI/CD課程1
當工程師完成Code的異動並Merge到Git Repo.
GitLab CI(Pipeline)如何完成後續的動作如:
- Test Code
- Build Docker image
- Push to Docker Registry
就先以以上的CI流程討論,GitLab CI/CD工具會如何完成?
一樣回歸到InfraStructure as Code概念
整段流程pipeline將會寫成如同script那樣,並且是YAML格式
通常命名為.gitlab-ci.yml
裡面包含完整的CI/CD pipeline configuration
首先建立一個簡單範例yml檔在自己本機路徑
其中"Jobs"就是.gitlab-ci.yml所描述的pipeline流程內最基礎的區塊
並且Job即描述了"What to Do"
裡面撰寫簡單的script:
而實際上可以定義多個Jobs如下:
而Job的執行也可以給予Job執行前後(brfore & after)的動作,例如:
此時的Pipeline的流程如下:
而這樣的Pipleine流程一般都是給特定的project設計的
意思就是專為特定的應用程式系統設計的test,build,與deploy
為了執行上述GitLab CI/CD腳本
先Fork Nana的GitLab示範用的Project(Link):
(我事後調整成private的)
然後在我自己的GitLab上得到:
不過Nana課程畫面中只有app目錄,.gitignore,README.md這三個檔案
不過後面再看上面多出的檔案有無影響
先嘗試增加檔案:
當嘗試寫入檔案名稱 →gitlab-ci.yml會發現有錯誤如下:
實際上應該是要寫成隱藏檔,前面要加"點"
接著把剛剛VScode寫好的貼過來:
接著要小心的是
由於新增這個.gitlab-ci.yml檔案會觸發Gitlab執行這個自動化腳本
因為這個檔案也算是異動到這個Repo的內容物件
這邊就直接Commit Change:
會看到:
在強調一次,這個.gitlab-ci.yml檔案抑是這個Repo.專案的Code的一部分
接著就是到另一個頁面看看剛剛commit的腳本執行結果:
如上看到failed點進去看看:
主要是帳號要經過驗證的問題(點上面圖中的Validate account)
照著格子填一填後看到:
過不久就接到簡訊通知被要求30元...不知道是驗證用的還怎樣...
此時信箱也有剛剛pipeline執行失敗的信
接著為了跟講師畫面一樣,我嘗試手動啟動pipeline:
幾秒後看到:
要修改pipeline執行內容就直接回到Repo內調整該檔案:
抑或是直接按左邊CICD的Editor:
在上面畫面下我直接改成錯誤的script內容並commit:
點進去看到:
在左邊Jobs點進去看到:
點進去失敗的build_image job進去看到:
未來這樣的pipeline會執行數次,所以所有Jobs執行都會如上混在一起
所以才會還有pipeline的view:
也很容易進去看各個Jobs執行狀況:
當有code被commit到Git Repo.即會自動觸發整個pipeline流程:
- 不需要Webhook(因為pipeline的腳本.gitlab-ci.yaml也在同一個地方!)