GitLab CI/CD
1、持續整合(Continuous Integration)
持續整合指的是頻繁的將程式碼整合到主幹,每次整合都通過自動化的構建(包括編譯、釋出、自動化測試)來驗證,它的好處主要有兩個:
快速發現錯誤。每完成一點更新,就整合到主幹,可以快速發現錯誤,定位錯誤也比較容易;
防止分支大幅偏離主幹。如果不經常整合,很容易導致整合難度變大,以至於難以整合。
從8.0
GitLab
持續整合(CI)完全整合到GitLab
本身,它還具有持續部署和持續交付功能,可用於構建、測試和部署你的應用程式。下面是GitLab CI/CD
流程圖。
那麼怎樣讓GitLab CI工作起來呢?總結起來就兩條:
將.gitlab-ci.yml檔案新增到遠端倉庫的根目錄;
將GitLab專案配置為使用Runner
設定好這些後,你每次push程式碼到Git倉庫,Runner都會自動觸發CI pipeline,你可以在專案的Pipelines頁面下。如下圖所示:
如果一切執行正常,你可以看到綠色複選標記,這樣你就可以在檢視程式碼之前輕鬆檢視任何提交是否導致測試失敗。
3、.gitlab-ci.yml
那麼.gitlab-ci.yml是什麼,怎麼建立呢?下面就來了解一下。
.gitlab-ci.yml檔案配置CI對專案執行的操作,它告訴GitLab runner該做什麼。它位於儲存庫的根目錄中,你程式碼的每次提交,GitLab都會查詢.gitlab-ci.yml這個檔案,並根據這個檔案的內容,在Runner上啟動你提交的工作。預設情況下,它執行一個包含三個stage的管道:build,test,deploy。你不需要使用所有三個stage,沒有工作的stage將會被忽略。
4、建立.gitlab-ci.yml檔案
.gitlab-ci.yml是一個YAML檔案,所以你必須特別注意縮排。始終使用空格鍵,而不是Tab鍵。
你需要在你倉庫的根目錄下建立一個名為.gitlab-ci.yml
的檔案,下面是一個我建立的HelloWorld的SpringBoot測試專案編寫的.gitlab-ci.yml檔案。
stages:
- build
- test
- deploy
build_maven:
stage: build
script:
- echo "build maven....."
- echo "mvn clean"
- echo "done"
test_springboot:
stage: test
script:
- echo "run java test....."
- echo "java -test"
- echo "done"
deploy_springboot:
stage: deploy
script:
- echo "deploy springboot...."
- echo "run mvn install"
- echo "done"
上面的配置主要做的件事:
在每個階段完成時輸出測試資訊(以build階段的輸出資訊為例,見下圖)