GitLab?Pipeline規(guī)范及流程觸發(fā)詳解
一、涉及概念
| 名稱 | 簡述 |
|---|---|
| Pipeline | 流水線,用于組織構(gòu)建CI/CD流程,實現(xiàn)了Pipeline As Code |
| Stage | 一條流水線是由多個階段組成的,每個階段一個stage,階段按順序執(zhí)行 |
| Job | 每個階段由多個Job組成,同個Stage下的多個Job可并行執(zhí)行 |
| CI/CD variables | CI/CD過程中的環(huán)境變量 |
| GitLab Runner | 流水線任務(wù)執(zhí)行者,執(zhí)行定義好的腳步 |

二、Pipeline流程觸發(fā)
| 觸發(fā)角色 | 觸發(fā)動作 | 目標(biāo)分支 | Stage |
|---|---|---|---|
| 項目負責(zé)人/開發(fā)人員 | merge | develop | 構(gòu)建、測試、部署開發(fā)環(huán)境 |
| 項目負責(zé)人/開發(fā)人員 | merge, commit | test, release/* | 構(gòu)建、測試、打包、部署測試環(huán)境 |
| 項目負責(zé)人 | tag | master | 構(gòu)建、測試、打包、預(yù)發(fā)布 |
三、配置說明
GitLab Pipeline是通過解析倉庫根目錄下的.gitlab-ci.yml文件來執(zhí)行流水線任務(wù),常用配置示例如下:
# 緩存定義[可選],用于不同Runner實例間傳遞構(gòu)建產(chǎn)物
cache:
# 關(guān)鍵字,可隔離不同job或stage之間
key: "$CI_PROJECT_NAME-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHA"
# 需要緩存的路徑/文件
paths:
- file
- dir/*
# stage定義<必填>
stages:
- build
- test
- package
- release
# ...
# 定義Job<必填>,名稱可自定義且不能重復(fù)
build-dev:
# Runner鏡像[可選],指定時會覆蓋默認(rèn)鏡像
# image: centos:7
# 指定Runner<必填>
tags:
- golang-amd64
# 關(guān)聯(lián)的stage<必填>
stage: build
# 關(guān)聯(lián)的觸發(fā)分支[可選]
only:
- develop
# 任務(wù)腳本【必填】
script:
- sh script/build_dev.sh
# test階段
test:
# ...
stage: test
# ...詳見:docs.gitlab.com/ee/ci/yaml/
四、共享Runner

公共Runner對于所有項目是可見的,可通過tag來指定特地功能的Runner
| tag | 默認(rèn)鏡像 | 包含功能 | 描述 |
|---|---|---|---|
| maven | repo.netfuse.cn/cicd/maven:jdk-8 | maven3, jdk8, ssh | 構(gòu)建Java |
| node | repo.netfuse.cn/cicd/node:14.2 | node, yarn, ssh | 構(gòu)建前端 |
| golang-amd64 | repo.netfuse.cn/cicd/golang:1.15-amd64repo.netfuse.cn/cicd/golang:1.16-amd64(可選) | go, git, ssh | 構(gòu)建Go,AMD64架構(gòu) |
| golang-aarch64 | repo.netfuse.cn/cicd/golang:1.15-aarch64 | go, git, ssh | 構(gòu)建Go,ARM64架構(gòu) |
| kaniko | repo.netfuse.cn/cicd/kaniko:v1.6.0 | kaniko | 構(gòu)建鏡像 |
| ubuntu-amd64 | repo.netfuse.cn/cicd/ubuntu:18.04 | dpkg, ssh | deb打包,AMD64架構(gòu) |
| ubuntu-aarch64 | repo.netfuse.cn/cicd/ubuntu:bionic-arm64 | dpkg, ssh | deb打包,ARM64架構(gòu) |
| deployercentos-amd64 | repo.netfuse.cn/cicd/centos:7 | rpm-build, make, ssh, argocd, kubectl | rpm打包,AMD64架構(gòu) |
| releaser | repo.netfuse.cn/cicd/ubuntu:18.04 | dpkg, ssh | 發(fā)布、推文件、部署等 |
以上就是GitLab Pipeline規(guī)范及流程觸發(fā)詳解的詳細內(nèi)容,更多關(guān)于GitLab Pipeline規(guī)范的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Tornado Web服務(wù)器中處理空白字符的解決方案
這篇文章主要介紹了Tornado Web服務(wù)器中處理空白字符的解決方案,本文通過修改Tornado源碼解決這個問題,需要的朋友可以參考下2015-01-01
基于http.server搭建局域網(wǎng)服務(wù)器過程解析
這篇文章主要介紹了基于http.server搭建局域網(wǎng)服務(wù)器過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
手把手教你低成本獲取AlphaSSL通配符泛域名SSL證書2024仍可用
AlphaSSL 是著名數(shù)字證書認(rèn)證機構(gòu)和SSL證書簽發(fā)商 GlobalSign 旗下的證書品牌,這篇文章主打手把手教你低成本獲取AlphaSSL通配符泛域名SSL證書,需要的朋友可以參考下2024-02-02
aws服務(wù)器更換實例規(guī)格后ssh無法登陸的解決方案
這篇文章主要介紹了aws服務(wù)器更換實例規(guī)格后ssh無法登陸,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
dell r710 服務(wù)器配置RAID5(3塊硬盤做RAID5)
這篇文章主要介紹了dell r710 服務(wù)器配置RAID5圖文教程,需要的朋友可以參考下2014-08-08
svn服務(wù)器安裝在centos7系統(tǒng)平臺
本文給大家介紹的是在centos7系統(tǒng)上安裝svn服務(wù)器的詳細教程,有需要的小伙伴可以參考下2018-04-04
基于BaseHTTPRequestHandler的HTTP服務(wù)器使用及實現(xiàn)方法
BaseHTTPRequestHandler是Python中的一個基類,屬于http.server模塊,用于處理HTTP請求的基本功能,下面詳細介紹BaseHTTPRequestHandler的主要特點和使用方法,感興趣的朋友一起看看吧2023-10-10

