服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - 服务器知识 - GitLab Pipeline规范及流程触发详解

GitLab Pipeline规范及流程触发详解

2023-04-20 17:40前端代码王 服务器知识

这篇文章主要为大家介绍了GitLab Pipeline规范及流程触发详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一、涉及概念

名称 简述
Pipeline 流水线,用于组织构建CI/CD流程,实现了Pipeline As Code
Stage 一条流水线是由多个阶段组成的,每个阶段一个stage,阶段按顺序执行
Job 每个阶段由多个Job组成,同个Stage下的多个Job可并行执行
CI/CD variables CI/CD过程中的环境变量
GitLab Runner 流水线任务执行者,执行定义好的脚步

GitLab Pipeline规范及流程触发详解

二、Pipeline流程触发

触发角色 触发动作 目标分支 Stage
项目负责人/开发人员 merge develop 构建、测试、部署开发环境
项目负责人/开发人员 merge, commit test, release/* 构建、测试、打包、部署测试环境
项目负责人 tag master 构建、测试、打包、预发布

三、配置说明

GitLab Pipeline是通过解析仓库根目录下的.gitlab-ci.yml文件来执行流水线任务,常用配置示例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 缓存定义[可选],用于不同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

GitLab Pipeline规范及流程触发详解

公共Runner对于所有项目是可见的,可通过tag来指定特地功能的Runner

tag 默认镜像 包含功能 描述
maven repo.netfuse.cn/cicd/maven:jdk-8 maven3, jdk8, ssh 构建Java
node repo.netfuse.cn/cicd/node:14.2 node, yarn, ssh 构建前端
golang-amd64 repo.netfuse.cn/cicd/golang:1.15-amd64repo.netfuse.cn/cicd/golang:1.16-amd64(可选) go, git, ssh 构建Go,AMD64架构
golang-aarch64 repo.netfuse.cn/cicd/golang:1.15-aarch64 go, git, ssh 构建Go,ARM64架构
kaniko repo.netfuse.cn/cicd/kaniko:v1.6.0 kaniko 构建镜像
ubuntu-amd64 repo.netfuse.cn/cicd/ubuntu:18.04 dpkg, ssh deb打包,AMD64架构
ubuntu-aarch64 repo.netfuse.cn/cicd/ubuntu:bionic-arm64 dpkg, ssh deb打包,ARM64架构
deployercentos-amd64 repo.netfuse.cn/cicd/centos:7 rpm-build, make, ssh, argocd, kubectl rpm打包,AMD64架构
releaser repo.netfuse.cn/cicd/ubuntu:18.04 dpkg, ssh 发布、推文件、部署等

以上就是GitLab Pipeline规范及流程触发详解的详细内容,更多关于GitLab Pipeline规范的资料请关注服务器之家其它相关文章!

原文链接:https://juejin.cn/post/7223357165682982971

延伸 · 阅读

精彩推荐