一、涉及概念

名称简述
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

公共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发布、推文件、部署等