GitLab CI Pipeline

article/2025/9/30 10:35:07

GitLab 不单单只是作为一个代码版本控制的仓库,很多场景下使用 GitLab 作为整合 CI 持续集成就 CD 持续发布的工作平台,那么就是 GitLab 的 CI Pipeline 功能了。

CI Pipeline

试想一下,如果开发人员只需要编写代码,而编译、打包、测试等等集成的事情以及将打包后的线上全部交付给机器自动化去完成,那对效率是不是有极大的提高呢。
在这里插入图片描述

什么是 CI (Continuous Integration)

持续集成是指开发人员会持续的将代码更改提交到代码仓库中,更改会触发编译、测试等作业证明此次提交的代码是否满足预期要求,已确保新提交代码可以对原有代码进行集成,已防止新提交的代码造成部署后应用出现问题。

什么是 CD (Continuous Delivery)

持续交付是指持续集成的进一步扩展,已经正常通过测试及验证代码的稳定性,下一步就是将代码部署在预发环境中,可以使用自动化的方式重复的进行频繁的交付,这可以避免因为人工配置错误等原因造成问题。

从一个流水线说起

GitLab 中通过 .gitlab-ci.yml 来定义Pipeline、Stage、Job,该文件存在与项目的根目录下,当有代码提交时,将自动化触发到该流水线的作业。

stages 代表阶段,例如流水线会包括编译、部署、测试等步骤。
Job 代表作业,例如在编译阶段的作业是处理依赖等。

该示例定义了 master 分支下提交代码时会触发到流水线的作业,分别会助兴 build、deploy 和 test,简单的通过输出回显代表所执行的作业。

stages:- build- deploy- testdefault:before_script:- echo 'run some command before'after_script:- echo 'run some command 'prod-build:stage: buildonly:- masterscript:- echo "run some dev build code"prod-deploy:stage: deployonly:- masterscript:- echo "run some prd deploy code"prod-test:stage: testonly:- masterscript:- echo "run some prd test code"

验证 .gitlab-ci.yml 语法是否正确
在这里插入图片描述

得到输出验证结果在这里插入图片描述

GitLab Runner

由于当前 GitLab 服务中没有部署任何的 GitLab Runner,所以会见到该流水线作业是在 Pending 状态的。
在这里插入图片描述

GitLab Runner 部署

在这里也是通过 Docker 容器的形式去运行 GitLab Runner,并连接到 GitLab Server 中来。

创建 GitLab Runner

docker run -d --name gitlab-runner gitlab/gitlab-runner:v13.5.0

注册到 GitLab Server

docker exec -it gitlab-runner gitlab-ci-multi-runner register

注册时需要用到的 URL 及 Token 通过访问 Admin Area 下的 Runners 功能获取。
在这里插入图片描述

相关定义的流水线已经被 GitLab Runner 运行,并且每一个 Stage 都是成功的
在这里插入图片描述

Pipeline Schedule

可以通过计划该功能设置根据需要自动进行触发流水线作业,例如在有些场景下,团队的产品最少每天要进行一次持续集成,而这个作业由系统自动化触发。

可以按照 crontab 的形式进行定义作业的频率,并且指定所对应的分支。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/v4Y6vEWU.shtml

相关文章

CICD之 gitlab和gtilab runner

gitlab官网地址 官网文档地址 https://docs.gitlab.com/runner/install/docker.html 一。gitlab 1。gitlab安装 方式一:rpm包安装(centos)1,下载rpm包清华源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/linux命令wget https://mirror…

gitlab-CI入门

gitlab-CI 代码管理自动化部署及消息推送 (1) 通过在项目根目录下配置**.gitlab-ci.yml**文件,可以控制ci流程的不同阶段,gitlab平台会扫描.gitlab-ci.yml文件,并据此处理ci流程。 (2) ci流程在每次团队成员push/merge后之后触发。每当你pu…

Gerrit介绍

谷歌 Android 开源项目在 Git 的使用上有两个重要的创新,一个是为多版本库协同而引入的 repo,这在之前我们已经详细讨论过。另外一个重要的创新就是 Gerrit —— 代码审核服务器。Gerrit 为 Git 引入的代码审核是强制性的,就是说除非特别的授…

Git--GUI

前言 上一篇文章简单的分享了Git 的 Bash Here的使用,以及一些Git常用的命令等。本篇文章要分享的内容为Git GUI Here 的使用。 一、GUI GIT官方网站为了解决部分用户通过命令行对git工具使用时的怨声载道的现象,因此推出了一个GIT的可视化工具Git Gui …

GitLab CI介绍——入门篇

本文将会对Gitlab CI进行简要介绍,包括Gitlab Runner,Gitlab CI中的相关概念以及.gitlab-ci.yml的常用配置。 那么,GitLab CI 是什么? GitLab CI 是GitLab内置的进行持续集成的工具,只需要在仓库根目录下创建.gitlab-ci.yml 文件,并配置GitLab Runner;每次提交的时候,…

Gerrit

开发、提交、push、入库流程: repo init -u ssh://gerrit帐号[ip:port/platform/manifest -b 分支名 repo sync -c -f --no-tags -j1 git commit git push origin HEAD:refs/for/分支名 有的可能是这样push的: git push ssh://usernameip:port/path…

CICD详解(八)——gitlab安装与配置

今天继续给大家介绍Linux运维相关知识,本文主要内容是gitlab的安装与配置。 一、安装环境准备 首先,我们先来安装一下Gitlab的依赖包,执行命令: yum install curl policycoreutils openssh-server openssh-clients postfix -y然…

CICD详解(九)——gitlab简单使用

今天继续给大家介绍Linux运维相关知识,本文主要内容是Gitlab简单使用。 一、Gitlab关闭自动注册 在企业生产环境中,我们一般由项目负责人负责创建用户并分配权限,一般禁止员工私自注册用户,以防给项目开发工作带来安全性上的风险…

GitLab -- 简单使用CICD功能

前提: 新建GitLab 项目,可参考我另一篇博客 GitLab -- 创建项目_DGH2430284817的博客-CSDN博客 安装配置好Runner,可参考我另一篇博客: GitLab -- 安装和配置Runner_DGH2430284817的博客-CSDN博客 创建.gitlab-ci.yml 文件&…

Git Gui

目录 1.什么是Git Gui 2. 什么是ssh key 3. git/github生成密钥并通过 第一步:本地电脑配置 1.配置用户名和邮箱(如果已经配置,就跳过) 2.检查下自己之前有没有已经生成ssh 3.生成(或删除)秘钥 第二步:远程git…

GitLab CI/CD artifacts 属性的配置与使用

😀最新最全的 GitLab CI/CD 全部关键词解析 请查阅该专栏 GitLab CI/CD 关键词 artifacts用于指定在job 成功或失败 时应附加到作业的文件和目录的列表。 作业完成后,工件将被发送到GitLab,并可在GitLab UI中下载 如 artifacts:paths 路径是相对于项目目录($CI_PROJECT…

CI环境搭建-创建git

添加如下配置: 上图说的需每次启动的即下面这个文件: 默认用户名、密码是admin/admin 创建代码仓库: 选择版本库: 使用方法: 1,创建一个文件夹 选择版本库地址: 也可以通过cmd命令来拉取代码&am…

CI持续集成环境搭建(3)--git的安装与搭建

https://blog.51cto.com/superleedo/2057841 1. 安装git *Note:不要用yum安装git, yum源安装git最新版本是1.8.3,该版本太老,之后用git commit 有可能会报错:git: ‘interpret-trailers’ is not a git command. See ‘git --he…

JS 是怎样运行起来的

这里填写标题 1. Js 是怎样运行起来的?1.1. 前言1.2. V8 引擎1.3. CPU 是如何执行机器指令的?1.4. CPU 执行机器指令的流程1.5. V8 引擎的编译流水线1.6. 完整的分析一段 JavaScript 代码是怎样被执行的1.6.1. 初始化基础环境1.6.2. 解析源码生成 AST 和作用域1.6.3. 依据 AS…

bootstrap+javascript制作体重标准计算器

一、表单编辑 使用bootstrap可以快速创建表单样式。needs-validation 可以验证表单,如果验证不通过,表单不会提交; onSubmit"return false;"使得表单提交不会刷新页面; 下方js代码是用来控制表单验证; &l…

如何白嫖world.js、china.js以及各个省的js和json文件

全是干货,看仔细了。 作者在工作中遇到了绘制世界地图的场景,但是由于现在echarts的官网已经不提供地图文件下载了。 所以需要自己找资源,在csdn中用积分下载的资源还是挺多的。 但是碍于个别同学没有积分或者喜欢白嫖,所以这里…

js中?.、??的具体用法

1、?. (可选链运算符) 在javascript中如果一个值为null、undefined,直接访问下面的属性, 会报 Uncaught TypeError: Cannot read properties of undefined 异常错误。 而在真实的项目中是会出现这种情况,有这个值就…

JS之BigNumber.js 讲解

JavaScript因为存在计算的精度问题,所以直接计算就可能会导致各种各样的bug,为了解决这个问题,就要使用BigNumber.js这个库。 至于为什么JavaScript会有精度问题呢,可以看https://github.com/camsong/blog/issues/9。简单来说就是因为:JavaScript中所有的数字(包括整数和…

Js运动

JavaScript之Js运动 在我们进行web开发的过程中,为了与用户进行更加友好、有趣的交互,拥有一套完美的运动框架就能轻松解决。 这次就给大家带来Javascript学习中Js运动的编写和注意事项。实现运动的思想很简单,首先对这个元素获取定位&…

更优雅的编写JavaScript,使用这些函数秒变大神

如果你刚接触JavaScript可能你还没有听说过.map(),.reduce(),.filter()。或者听说过,看过别人用过但是自己在实际项目中没有用过。在国内很多开发项目都是需要考虑IE8的兼容,为了兼容很多JavaScript好用的方法和技巧都被埋没了。但…