go-zero CI/CD

2022-04-21 11:11 更新

在軟件工程中,CI/CD或CICD通常指的是持續(xù)集成和持續(xù)交付或持續(xù)部署的組合實踐。 ——引自維基百科


CI可以做什么?

  • 現(xiàn)代應(yīng)用開發(fā)的目標(biāo)是讓多位開發(fā)人員同時處理同一應(yīng)用的不同功能。但是,如果企業(yè)安排在一天內(nèi)將所有分支源代碼合并在一起(稱為“合并日”),最終可能造成工作繁瑣、耗時,而且需要手動完成。這是因為當(dāng)一位獨立工作的開發(fā)人員對應(yīng)用進行更改時,有可能會與其他開發(fā)人員同時進行的更改發(fā)生沖突。如果每個開發(fā)人員都自定義自己的本地集成開發(fā)環(huán)境(IDE),而不是讓團隊就一個基于云的 IDE 達成一致,那么就會讓問題更加雪上加霜。
  • 持續(xù)集成(CI)可以幫助開發(fā)人員更加頻繁地(有時甚至每天)將代碼更改合并到共享分支或“主干”中。一旦開發(fā)人員對應(yīng)用所做的更改被合并,系統(tǒng)就會通過自動構(gòu)建應(yīng)用并運行不同級別的自動化測試(通常是單元測試和集成測試)來驗證這些更改,確保這些更改沒有對應(yīng)用造成破壞。這意味著測試內(nèi)容涵蓋了從類和函數(shù)到構(gòu)成整個應(yīng)用的不同模塊。如果自動化測試發(fā)現(xiàn)新代碼和現(xiàn)有代碼之間存在沖突,CI 可以更加輕松地快速修復(fù)這些錯誤。
——引自《CI/CD是什么?如何理解持續(xù)集成、持續(xù)交付和持續(xù)部署》

從概念上來看,CI/CD包含部署過程,我們這里將部署(CD)單獨放在一節(jié)服務(wù)部署, 本節(jié)就以gitlab來做簡單的CI(Run Unit Test)演示。

gitlab CI

Gitlab CI/CD是Gitlab內(nèi)置的軟件開發(fā)工具,提供

  • 持續(xù)集成(CI)
  • 持續(xù)交付(CD)
  • 持續(xù)部署(CD)

準(zhǔn)備工作

  • gitlab安裝
  • git安裝
  • gitlab runner安裝

開啟gitlab CI

  • 上傳代碼
    • 在gitlab新建一個倉庫go-zero-demo
    • 將本地代碼上傳到go-zero-demo倉庫
  • 在項目根目錄下創(chuàng)建.gitlab-ci.yaml文件,通過此文件可以創(chuàng)建一個pipeline,其會在代碼倉庫中有內(nèi)容變更時運行,pipeline由一個或多個按照順序運行, 每個階段可以包含一個或者多個并行運行的job。
  • 添加CI內(nèi)容(僅供參考)

  stages:
  - analysis

  analysis:
  stage: analysis
  image: golang
  script:
  - go version && go env
  - go test -short $(go list ./...) | grep -v "no test"


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號