GitLab CI/CD課程1

Core Concepts of GitLab CI/CD Intro. & Execute Pipeline

ZONGRU Li
Jun 12, 2022

當工程師完成Code的異動並MergeGit 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 NanaGitLab示範用的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內調整該檔案:

抑或是直接按左邊CICDEditor:

在上面畫面下我直接改成錯誤的script內容並commit:

點進去看到:

在左邊Jobs點進去看到:

點進去失敗的build_image job進去看到:

未來這樣的pipeline會執行數次,所以所有Jobs執行都會如上混在一起

所以才會還有pipelineview:

也很容易進去看各個Jobs執行狀況:

當有codecommitGit Repo.即會自動觸發整個pipeline流程:

  • 不需要Webhook(因為pipeline的腳本.gitlab-ci.yaml也在同一個地方!)

參考課程(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet