GitLab Pipeline规范及流程触发详解

目录
  • 一、涉及概念
  • 二、Pipeline流程触发
  • 三、配置说明
  • 四、共享Runner

一、涉及概念

名称 简述
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规范的资料请关注我们其它相关文章!

(0)

相关推荐

  • Terraform集成简单Gitlab CI方案详解

    目录 一 背景 二 流程架构 2.1 架构图 2.2 流程 三 预置条件 四 配置 4.1 Gitlab CI配置 4.1.1 .gitlab.yaml 4.1.2 环境配置 4.2 Terraform资源 五 测试 六 注意事项 一 背景 利用Gitlab CI实现基础设施编排自动化,用户后续针对基础设施的管理使用Gitlab完成,提交基础设施变更后,会出发pr进行Gitlab CI流水线执行,从而实现基础设施DevOPS流程. 二 流程架构 2.1 架构图 2.2 流程 运维研发编写目标云的

  • gitlab ci cd 命令的使用不完全指南

    目录 什么是 CI.CD 为什么要使用 CI.CD gitlab CI.CD gitlab CI.CD 中的一些基本概念 CI.CD 的工作模型 其他一些在个人实践中的一些经验 指定特定分支才会执行的 job 不同 job 之间的依赖 指定执行 job 的 runner 指定 job 的 docker image 为我们的集成测试指定一个 service 复用 yaml 配置片段 cache vs artifacts 指定 artifacts 的过期时间 cache 只 pull 不 push

  • SpringCloudGateway Nacos GitlabRunner全自动灰度服务搭建发布

    目录 1 | 业务场景说明 2 | 具体实现方案 2.1 | SCG 2.2 | Nacos 2.3 | GitlabRunner 3 | 后续 TODO 4 | 使用版本说明 1 | 业务场景说明 要实现的业务场景: 可以根据单个用户id或者批量用户id,判断是否需要灰度该用户/批量用户 可以根据请求头字段(可动态设定的任意kv),判断是否需要走灰度服务 2 | 具体实现方案 这里采用 SpringCloudGateway(SCG) + Nacos + GitlabRunner 来实现整个自动

  • Rainbond云原生快捷部署生产可用的Gitlab步骤详解

    目录 Gitlab简介 准备工作 部署步骤 部署Postgresql组件 部署Redis组件 部署Gitlab-Server组件 配置网关访问策略 FAQ Gitlab简介 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释.同时Gitlab集成了一系列的CI功能.不得不说,Gitlab在企业中是的使用率非常高. Rainbond非常推荐

  • GitLab Pipeline规范及流程触发详解

    目录 一.涉及概念 二.Pipeline流程触发 三.配置说明 四.共享Runner 一.涉及概念 名称 简述 Pipeline 流水线,用于组织构建CI/CD流程,实现了Pipeline As Code Stage 一条流水线是由多个阶段组成的,每个阶段一个stage,阶段按顺序执行 Job 每个阶段由多个Job组成,同个Stage下的多个Job可并行执行 CI/CD variables CI/CD过程中的环境变量 GitLab Runner 流水线任务执行者,执行定义好的脚步 二.Pipel

  • SpringBoot错误处理流程深入详解

    目录 一.错误处理 二.底层相关组件 三.异常处理流程 四.定制错误处理逻辑 1.自定义错误页面 2.使用注解或者默认的异常处理 3.自定义异常处理解析器 一.错误处理 默认情况下,Spring Boot提供/error处理所有错误的映射 对于机器客户端(例如PostMan),它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息(如果设置了拦截器,需要在请求头中塞入Cookie相关参数) 对于浏览器客户端,响应一个“ whitelabel”错误视图,以HTML格式呈现相同的数据

  • python学习 流程控制语句详解

    ###################### 分支语句 python3.5 ################ #代码的缩进格式很重要 建议4个空格来控制 #根据逻辑值(True,Flase)判断程序的运行方向 # Ture:表示非空的量(String,tuple元组 .list.set.dictonary),所有非零的数字 # False:0,None .空的量 #逻辑表达式 可以包含 逻辑运算符 and or not if: ##################################

  • ThinkPHP实现微信支付(jsapi支付)流程教程详解

    之前写过一篇文章讲了PHP实现微信支付(jsapi支付)流程 ,详见文章:PHP实现微信支付(jsapi支付)流程. 当时的环境是没有使用框架的,直接在一个域名指向的目录下边新建目录之后访问该目录实现的,但应用到框架中,还是有一些问题,在ThinkPHP中,由于路由规则与支付授权目录有出入,所以会报错.本篇讲讲在TP中集成微信支付的流程. 鹅厂出的SDK和文档,就是让你看不懂,使劲绕,这酸爽用了就知道.文档和SDK不是应该越简单通俗易懂越好么?难道只有使劲重构才能显示出鹅厂程序猿技术的高超咩?额

  • PHP实现微信支付(jsapi支付)流程步骤详解

    最近接触到一个项目,涉及到微信支付,搞微信开发这么久以来,还没搞过支付,之前也就搞过公众号发红包,感谢前辈们的探索,我看了他们的博文,让我少走了很多弯路. 前期准备: 1.微信认证服务号,并且开通了微信支付 2.微信支付SDK,下载地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1 3.登录微信支付平台https://pay.weixin.qq.com/index.php/account/api_cert下载支付证书

  • 基于vue 兄弟组件之间事件触发(详解)

    直奔主题! 兄弟组件之间的事件触发,大概思路是通过父级组件交换数据,watch来监听触发事件. 场景是父级组件A同时引用两个子级组件B,C.点击B组件中的按钮执行C组件中的事件. 第一步:父级组件A <bottom-play :play="playStatus" @playStatus="btmChild"></bottom-play> methods:{ listChild:function(val){//B组件自定义事件 状态是布尔值 t

  • PHP实现微信支付(jsapi支付)和退款(无需集成支付SDK)流程教程详解

    之前有写过几篇文章将微信支付和退款: 1.PHP实现微信支付(jsapi支付)流程 2.ThinkPHP中实现微信支付(jsapi支付)流程 3.PHP实现微信申请退款 这几篇都是使用了微信官方给的PHP版本的SDK,进行支付的时候写代码可以省不少事,步骤也挺简化,但是集成SDK有很多坑,很多人说引入的SDK老报错,或者说官方SDK本身有不少错误,改起来很麻烦,也确实挺麻烦的,对于新手搞支付很容易被绕进去,那么今天就来讲讲不集成支付SDK直接调用支付接口实现支付和退款. 前期准备: 1.当然了,

  • Linux操作系统启动流程图文详解

    理解Linux操作系统启动流程,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题. 上图为Linux操作系统启动流程 1.加载BIOS 计算机电源加电质检,首先加载基本输入输出系统(Basic Input Output System,BIOS),BIOS中包含硬件CPU.内存.硬盘等相关信息,包含设备启动顺序信息.硬盘信息.内存信息.时钟信息.即插即用(Plug-and-Play,PNP)特性等.加载完BIOS信息,计算机将根据顺序进行启动. 2.读取MBR 读取

  • Centos7 Yum安装PHP7.2流程教程详解

    Centos7Yum安装PHP7.2 1.安装源 安装php72w,是需要配置额外的yum源地址的,否则会报错不能找到相关软件包. php高版本的yum源地址,有两部分,其中一部分是epel-release,另外一部分来自webtatic.如果跳过epel-release的话,安装webtatic的时候,会有错误爆出. 所以,这里需要的命令是: rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-rele

  • springboot2.2 集成 activity6实现请假完整流程示例详解

    新手学习记录.写在springboot test 示例  示例代码地址看结尾.后面有带页面的示例. SpringBoot Test无页面简单示例 员工请假流程 员工发起申请,附带请假信息(请假几天) 单位领导审批,如果通过,交付经理审批,不通过,重新申请 经理审批,如果请假天数不超过三天,经理1审批 如果请假天数在3-5天,经理3审批 超过5天,经理2审批 经理审批通过,流程结束,经理审批不通过,员工重新申请 流程图 代码 activiti.cfg.xml为必须文件且数据库连接正确,否则Proc

随机推荐