这篇文章主要为大家介绍了GitLab Pipeline规范及流程触发详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
一、涉及概念
名称 | 简述 |
---|---|
Pipeline | 流水线,用于组织构建CI/CD流程,实现了Pipeline As Code |
Stage | 一条流水线是由多个阶段组成的,每个阶段一个stage,阶段按顺序执行 |
Job | 每个阶段由多个Job组成,同个Stage下的多个Job可并行执行 |
CI/CD variables | CI/CD过程中的环境变量 |
GitLab Runner | 流水线任务执行者,执行定义好的脚步 |
二、Pipeline流程触发
触发角色 | 触发动作 | 目标分支 | Stage |
---|---|---|---|
项目负责人/开发人员 | merge | develop | 构建、测试、部署开发环境 |
项目负责人/开发人员 | merge, commit | test, release/* | 构建、测试、打包、部署测试环境 |
项目负责人 | tag | master | 构建、测试、打包、预发布 |
三、配置说明
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 | 默认镜像 | 包含功能 | 描述 |
---|---|---|---|
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规范的资料请关注编程学习网其它相关文章!
沃梦达教程
本文标题为:GitLab Pipeline规范及流程触发详解


猜你喜欢
- IIS搭建ftp服务器的详细教程 2022-11-15
- 教你在docker 中搭建 PHP8 + Apache 环境的过程 2022-10-06
- 阿里云ECS排查CPU数据分析 2022-10-06
- CentOS_mini下安装docker 之 安装docker CE 2023-09-23
- 解决:apache24 安装后闪退和配置端口映射和连接超时设置 2023-09-11
- 【转载】CentOS安装Tomcat 2023-09-24
- 利用Docker 运行 python 简单程序 2022-10-16
- KVM虚拟化Linux Bridge环境部署的方法步骤 2023-07-11
- nginx中封禁ip和允许内网ip访问的实现示例 2022-09-23
- CentOS7安装GlusterFS集群的全过程 2022-10-10