gitlab CI&CD配置

項(xiàng)目使用gitlab進(jìn)行代碼合版,團(tuán)隊(duì)不同的人代碼風(fēng)格不一樣,不方便后續(xù)的維護(hù)以及 code review,所以通過自定義代碼檢查腳本,植入CI流程中,每次mr都先執(zhí)行腳本檢查,如果代碼有問題就pipeline報(bào)錯(cuò)。

CI&CD

Gitlab-runner配置

按照gitlab官網(wǎng)文檔下載并安裝
intel

sudo curl --output /usr/local/bin/gitlab-runner "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-darwin-amd64"

Apple Silicon

sudo curl --output /usr/local/bin/gitlab-runner "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/binaries/gitlab-runner-darwin-arm64"
gitlab-runner install

gitlab-runner start之后/Library/LaunchAgents目錄下就會(huì)出現(xiàn)gitlab-runner.plist項(xiàng)了,執(zhí)行g(shù)itlab-runner status之后就是service is running狀態(tài)。

gitlab-runner register

gitlab-runner安裝啟動(dòng)完成之后,就可以進(jìn)行注冊(cè)了。終端執(zhí)行g(shù)itlab-runner register之后,按照提示輸入相關(guān)配置項(xiàng),就可以展示在網(wǎng)頁的gitlab倉庫中了。如下圖所示


runner配置.png
register.png

把對(duì)應(yīng)的url、token輸入進(jìn)去,其中要注意tags不能亂填,在 GitLab 中,為了使作業(yè)能夠找到特定的 Runner,你需要在 Runner 配置時(shí)為其指定標(biāo)簽。這意味著要確保 Runner 配置中的標(biāo)簽與作業(yè)中的標(biāo)簽匹配。在 .gitlab-ci.yml 文件中,你可以在作業(yè)配置中使用 tags 字段來指定需要使用的 Runner 標(biāo)簽。


Runner.png

根據(jù)配置文件gitlab-ci.yml文件中tags選項(xiàng)來指定使用哪個(gè)runner進(jìn)行工作,所以gitlab上配置的tags需要包含gitlab-ci.yml文件中配置的tag。
gitlab.yml文件.png
gitlab-ci.yml文件

如果一個(gè)項(xiàng)目想接入ci,可在代碼倉庫下面建個(gè) .gitlab-ci.yml 文件,gitlab-ci.yml 文件通過定義自動(dòng)化流程,幫助確保代碼的構(gòu)建、測(cè)試和發(fā)布可以在不同環(huán)境中可靠運(yùn)行。這一文件是實(shí)現(xiàn) GitLab CI/CD 功能的關(guān)鍵,用于構(gòu)建一個(gè)穩(wěn)定和高效的持續(xù)集成和持續(xù)部署系統(tǒng),其文件格式如上圖所示。
-stages:定義各個(gè)任務(wù)的階段(如 check、build、test、deploy 等),規(guī)定任務(wù)的執(zhí)行順序。
-任務(wù)(job):每個(gè)任務(wù)定義在不同的階段中,包含運(yùn)行階段(check)、運(yùn)行的腳本(script)、tags、依賴的文件、觸發(fā)條件(only)等
-only和except:指定任務(wù)的執(zhí)行條件,比如特定的分支、標(biāo)簽上運(yùn)行

LaunchAgents

gitlab-runner.plist 文件是 macOS 的 LaunchAgent 配置文件,用來定義 gitlab-runner 進(jìn)程的啟動(dòng)參數(shù)。以下是常見的參數(shù)及其含義。

常用參數(shù)解釋
Label
Label 是此服務(wù)的唯一標(biāo)識(shí)符,通常是應(yīng)用的名稱或包名,用來標(biāo)識(shí)該服務(wù)。系統(tǒng)會(huì)根據(jù) Label 來管理、加載或卸載此服務(wù)。建議保持唯一性。
<key>Label</key>
<string>gitlab-runner</string>

ProgramArguments
ProgramArguments 用于指定要運(yùn)行的命令及其參數(shù)。它是一個(gè)數(shù)組,第一個(gè)元素是可執(zhí)行文件的路徑,后續(xù)元素是傳遞給該命令的參數(shù)。此項(xiàng)定義了啟動(dòng)服務(wù)時(shí)實(shí)際運(yùn)行的內(nèi)容。
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/gitlab-runner</string>
<string>run</string>
<string>--working-directory</string>
<string>/Users/your_user/gitlab-runner</string>
</array>

RunAtLoad
RunAtLoad 是一個(gè)布爾值,指示是否在登錄時(shí)自動(dòng)啟動(dòng)此服務(wù)。設(shè)置為 true 表示系統(tǒng)啟動(dòng)或用戶登錄后立即運(yùn)行該服務(wù)。
<key>RunAtLoad</key>
<true/>

KeepAlive
KeepAlive 也是一個(gè)布爾值,指示是否在進(jìn)程意外退出后自動(dòng)重啟。如果設(shè)置為 true,該服務(wù)會(huì)在退出時(shí)自動(dòng)重新啟動(dòng)。
<key>KeepAlive</key>
<true/>

WorkingDirectory
WorkingDirectory 指定服務(wù)啟動(dòng)時(shí)的工作目錄。在該目錄下,服務(wù)會(huì)執(zhí)行其命令。如果命令需要相對(duì)路徑的文件或其他資源,該目錄將作為參考。
<key>WorkingDirectory</key>
<string>/Users/your_user/gitlab-runner</string>

StandardOutPath 和 StandardErrorPath
StandardOutPath 和 StandardErrorPath 用于指定標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出的日志文件路徑。可以幫助記錄服務(wù)的運(yùn)行日志和錯(cuò)誤信息,便于調(diào)試和監(jiān)控。
<key>StandardOutPath</key>
<string>/Users/your_user/gitlab-runner/logs/stdout.log</string>
<key>StandardErrorPath</key>
<string>/Users/your_user/gitlab-runner/logs/stderr.log</string>

EnvironmentVariables
EnvironmentVariables 是一個(gè)字典,用于設(shè)置服務(wù)啟動(dòng)時(shí)的環(huán)境變量??梢栽诖颂幎x環(huán)境變量,以確保服務(wù)能夠訪問其所需的環(huán)境配置。
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin</string>
</dict>

加載服務(wù)

launchctl load ~/Library/LaunchAgents/gitlab-runner.plist

卸載服務(wù)

launchctl unload ~/Library/LaunchAgents/gitlab-runner.plist
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容