.gitlab-ci.yml檔案解讀
阿新 • • 發佈:2021-06-10
之前一直對gitlab-ci.yml 瞭解不夠。完全看不明白,現在對檔案中的內容做個解讀。也當作一個筆記。
基礎知識
1. yml 語法說明
這裡詳細的可以搜尋下阮一峰老師的文章。這裡只列出gitlab-ci.yml中出現的內容
& 錨點和 * 別名,可以用來引用:
defaults: &defaults adapter: postgres host: localhost development: database: myapp_development <<: *defaults test: database: myapp_test <<: *defaults
相當於:
defaults:
adapter: postgres
host: localhost
development:
database: myapp_development
adapter: postgres
host: localhost
test:
database: myapp_test
adapter: postgres
host: localhost
& 用來建立錨點(defaults),<< 表示合併到當前資料,* 用來引用錨點。
其他語法自行查詢
2. GitLab Runner
GitLab Runner(為了敘述方便,以下簡稱Runner) 是與GitLab的CI/CD執行環境,是GitLab的一個工具包。
簡單來說吧, Runner就是自動化部署任務的執行環境。你編寫的一條自動化部署的流水線,包含了安裝,測試,部署三個任務,這三個任務在哪個環境下執行那,就是在Runner中。沒有Runner,GitLab CI/CD就沒辦法遠行。
要想做GitLab CI/CD,首先要有一個正常的Runner
現有環境和流程展示
GitLab Runner
Pipeline
上圖可以看到流水線有三個階段(stage):build/push/deploy
每個階段有一個job
,gitlab-ci.yml 檔案
這裡只保留一個階段做解讀
## 自定義了一個階段 stages: - build ## build 階段 dev-build: # 當前階段 和上面定義的對應 stage: build # 任務要執行的shell指令碼內容,內容會被runner執行 script: - gradle clean - gradle --build-cache assemble - cd build/libs # 將流水線過程中的一些檔案,資料夾,打包壓縮,提供一個外鏈供人下載,另外還能在後續的job中快取。 # paths 是用來指定將那些檔案,目錄放入製品中,也可以使用exclude關鍵詞,將那些目錄,檔案排除,支援正則表示式。 # expire_in 過期時間預設30天 這裡是1小時 artifacts: paths: - build/libs expire_in: 1h only: # 只有dev開始的tag才會執行 variables: - $CI_COMMIT_TAG =~ /dev-/ tags: # runner 的標籤,可以檢視上面的圖片,這裡指定用哪個runner - test
關於關鍵字的作用,可自行搜尋。知道常用的即可。