首頁 > 軟體

GitLab Pipeline規範及流程觸發詳解

2023-09-06 06:35:54

一、涉及概念

名稱簡述
Pipeline流水線,用於組織構建CI/CD流程,實現了Pipeline As Code
Stage一條流水線是由多個階段組成的,每個階段一個stage,階段按順序執行
Job每個階段由多個Job組成,同個Stage下的多個Job可並行執行
CI/CD variablesCI/CD過程中的環境變數
GitLab Runner流水線任務執行者,執行定義好的腳步

二、Pipeline流程觸發

觸發角色觸發動作目標分支Stage
專案負責人/開發人員mergedevelop構建、測試、部署開發環境
專案負責人/開發人員merge, committest, release/*構建、測試、打包、部署測試環境
專案負責人tagmaster構建、測試、打包、預釋出

三、設定說明

GitLab Pipeline是通過解析倉庫根目錄下的.gitlab-ci.yml檔案來執行流水線任務,常用設定範例如下:

# 快取定義[可選],用於不同Runner範例間傳遞構建產物
cache:
  # 關鍵字,可隔離不同job或stage之間
  key: "$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHA"
  # 需要快取的路徑/檔案
  paths:
    - file
    - dir/*
# stage定義<必填>
stages:
  - build
  - test
  - package
  - release
  # ...


# 定義Job<必填>,名稱可自定義且不能重複
build-dev:
  # Runner映象[可選],指定時會覆蓋預設映象
  # image: centos:7


  # 指定Runner<必填>
  tags:
    - golang-amd64
  # 關聯的stage<必填>
  stage: build
  # 關聯的觸發分支[可選]
  only:
    - develop
  # 任務指令碼【必填】
  script:
    - sh script/build_dev.sh


# test階段
test:
  # ...
  stage: test
  # ...

詳見:docs.gitlab.com/ee/ci/yaml/

四、共用Runner

公共Runner對於所有專案是可見的,可通過tag來指定特地功能的Runner

tag預設映象包含功能描述
mavenrepo.netfuse.cn/cicd/maven:jdk-8maven3, jdk8, ssh構建Java
noderepo.netfuse.cn/cicd/node:14.2node, yarn, ssh構建前端
golang-amd64repo.netfuse.cn/cicd/golang:1.15-amd64repo.netfuse.cn/cicd/golang:1.16-amd64(可選)go, git, ssh構建Go,AMD64架構
golang-aarch64repo.netfuse.cn/cicd/golang:1.15-aarch64go, git, ssh構建Go,ARM64架構
kanikorepo.netfuse.cn/cicd/kaniko:v1.6.0kaniko構建映象
ubuntu-amd64repo.netfuse.cn/cicd/ubuntu:18.04dpkg, sshdeb打包,AMD64架構
ubuntu-aarch64repo.netfuse.cn/cicd/ubuntu:bionic-arm64dpkg, sshdeb打包,ARM64架構
deployercentos-amd64repo.netfuse.cn/cicd/centos:7rpm-build, make, ssh, argocd, kubectlrpm打包,AMD64架構
releaserrepo.netfuse.cn/cicd/ubuntu:18.04dpkg, ssh釋出、推檔案、部署等

以上就是GitLab Pipeline規範及流程觸發詳解的詳細內容,更多關於GitLab Pipeline規範的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com