關(guān)于.gitlab-ci.yml的實用配置
1、stage參數(shù)
stages:
? - build
? - test
? - deploy
相同stage的作業(yè)會并行執(zhí)行,有一個失敗,則認為這個stage失敗。
不同stage的作業(yè)會按序執(zhí)行,前面stage有失敗,后續(xù)stage不會繼續(xù)執(zhí)行。
可以使用needs參數(shù)改變不同stage之間的依賴關(guān)系。
2、cache參數(shù)
cache
是一種用于存儲和重用構(gòu)建產(chǎn)物的機制,以加速CI/CD管道的執(zhí)行。通過緩存,可以在不必每次都重新構(gòu)建或下載依賴的情況下,加快CI/CD作業(yè)的執(zhí)行速度。通常,cache
主要用于存儲依賴包、編譯文件、測試工件等。
3、artifacts參數(shù)
另存為指定的文件或目錄作為產(chǎn)物,供后續(xù)階段使用,也可以在Gitlab UI下載它們。默認情況下,后期階段的作業(yè)會自動下載早期階段作業(yè)創(chuàng)建的所有產(chǎn)物。可以使用dependencies參數(shù)來只引用特定階段的產(chǎn)物??梢允褂脜?shù)控制產(chǎn)物的過期時間、公開與否、觸發(fā)條件等。
paths是相對于項目根目錄而言($CI_PROJECT_DIR)
job:
? artifacts:
? ? paths:
? ? ? - binaries/? ?# 目錄下所有文件作為產(chǎn)物
? ? ? - .config # .config文件作為產(chǎn)物
與cache目的不同,cache主要用于緩存依賴項,例如依賴包、編譯中間文件等,以加速連續(xù)集成(CI)過程,并且不能下載和共享給其他項目。
artifacts主要用于存儲產(chǎn)物、報告等,供后續(xù)存檔查閱和下載。
4、services參數(shù):
啟動一個docker服務(wù),供當(dāng)前階段使用。如執(zhí)行代碼單元測試時,需要數(shù)據(jù)庫服務(wù)。
unit test: image: unit_test:latest services: - name: mysql:oracle alias: mysql # 定義host為mysql,作業(yè)可以通過mysql連接到該服務(wù) script: - pytest
5、trigger參數(shù):
trigger
參數(shù)通常用于配置外部項目或倉庫的觸發(fā)器,使其能夠啟動當(dāng)前項目的CI/CD管道。這是一種通過API或Webhooks自動觸發(fā)另一個項目中的CI/CD流程的方法。trigger
參數(shù)通常用于配置與項目間的協(xié)作,例如,一個項目的CI/CD流程依賴于另一個項目生成的artifacts。
6、include參數(shù)
類似編程中的封裝和繼承,將相同作業(yè)或者模板定義在單獨文件或項目中,供其他.gitlab-ci.yml使用。include參數(shù)可以是當(dāng)前項目中的文件,也可以是其他項目或者外部項目中的文件。
include: - project: xxx/gitlab-ci-template ref: master file: template.yaml
7、extends參數(shù)
繼承extends指定的配置。只會繼承當(dāng)前作業(yè)未定義的配置,已經(jīng)定義的配置會覆蓋。
.tests:
? script: rake test
? stage: test
? only:
? ? refs:
? ? ? - branchesrspec:
? extends: .tests
? script: rake rspec --no-input? # 覆寫.tests中的script
8、allow_failure參數(shù)文章來源:http://www.zghlxwxcb.cn/news/detail-735702.html
允許作業(yè)失敗。失敗的作業(yè)不會導(dǎo)致管道失敗。文章來源地址http://www.zghlxwxcb.cn/news/detail-735702.html
到了這里,關(guān)于Gitlab CICD實用技巧匯總的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!