GitLAB CI-CD入门

GitLab CI-CD入门

image-20220505070058376

目录

image-20230518111107027

1、GitLabCI/CD简介

GitLabCI/CD简介

GitLabCI/CD是GitLab内置的持续集成与持续部署系统

image-20230425213724221

  • 开源: CI/CD是开源GitLab社区版和专有GitLab企业版的一部分。(极狐)
  • 易于学习: 官方具有详细的学习操作文档。
  • 无缝集成: CI/CD是GitLab的一部分,支持从计划到部署,具有出色的用户体验。 (例如:做一些基于版本控制系统的提交流水线、合并流水线,是很方便的!)
  • 可扩展: 可以根据需要添加任意数量的构建节点。
  • 更快的结果: 每个构建可以拆分为多个作业,这些作业可以在多台计算机上并行运行。
  • 针对交付进行了优化: 多个阶段,手动部署, 环境 和 变量。

tstmp_20230425213814

  • 针对交付进行了优化: 多个阶段,手动部署, 环境和变量。

jenkins里,你想要获取git分支、git提交用户的话,我们都需要先去抓收据,去采集数据,进行一个过滤,再拿到;

但在gitlab里,使用gitlab ci时,里面就有现成的环境变量,我们直接使用就好,所以这一点,还是有很大的优势的。这个文档是大家在开发流水线时必须依赖的一个文档,使用时要注意下这里的版本!

https://docs.gitlab.com/14.9/ee/ci/variables/predefined_variables.html

image-20220505071732864

gitlab ci/cd官方文档

https://docs.gitlab.com/14.9/ee/ci/

image-20220505071140976

常用变量参考文档:

https://docs.gitlab.com/14.9/ee/ci/variables/predefined_variables.html

image-20220505071732864

Pipeline

在每个项目中,使用名为imgYAML文件配置GitLab CI/CDimg流水线。

tstmp_20230425214236

Stages

一条流水线可以包含若干个阶段, 一个阶段可以包含若干个作业。

tstmp_20230425214313

Job

作业是具体要执行的任务,命令脚本语句的集合;

tstmp_20230425214327

Runner

Runner是每个作业的执行节点 ;每个作业可以根据标签选择不同的构建节点;

tstmp_20230425214357

2、GitLabRunner安装部署

见独立md文件。

image-20230516071755553

3、开发第一条Pipeline

image-20230426074748506

1. gitlab-ci.yml

如何开启GitLabCI/CD? 首先要将代码存储到GitLab, 然后在代码库的(默认根目录)添加一个.gitlab-ci.yml文件。该文件中定义了流水线的阶段和运行步骤。

根据不同的场景,可以自定义流水线定义文件的位置。

(默认)存储到项目根目录: /.gitlab-ci.yml

image-20230516071724876

为项目中添加.gitlab-ci.yml文件,表示启动的CI/CD。默认提交动作会自动运行该.gitlab-ci.yml中定义的作业。

  • 来到gitlab项目里,创建一个.gitlab-ci.yml文件

tstmp_20230426123643

  • 1 填写当前创建的文件的名称.gitlab-ci.yml;
  • 2 选择文件的类型;
  • 3 选择一个项目模板;(这里我们先选择一个bash类型)

image-20230426075108271

进行提交,默认就会自动跑流水线了:

但是,此时流水线状态为pending状态,这是为什么呢?

image-20230426075135904

image-20230426075159392

image-20230426075211642

  • 根据报错提示,可以知道是因为.gitlab-ci.yml文件里没指定runner

我们这里先重新写下代码

因此,一般情况下,我们再写流水线代码时,一般需要给每个阶段指定tags:

注意:这里的每个阶段都要添加这个tags才行!

image-20230426075538284

改好后,提交,并观察流水线运行状态:

此时,流水线运行状态就正常了。

image-20230426075634057

image-20230426075652301

image-20230426075754403

  • 我们这里想手动来触发下流水线,观察下test阶段2个作业,为什么这2个作业不是并行运行的呢?

image-20230426075947137

image-20230426075955845

image-20230426080010649

image-20230426080020721

  • 是因为我们的gitlab-runner的配置文件里需要修改下并行选项参数:
[root@Devops6 ~]#vim  /etc/gitlab-runner/config.toml
将concurrent = 1
改为
concurrent = 10

配置完后,默认生效的。

  • 我们再来运行一次流水线,观察下现象

image-20230426123342605

image-20230426123350641

可以看到,这里是并行运行作业的了,符合预期。

2. 流水线页面

tstmp_20230427073303

  • 1 清除runner的缓存;
  • 2 进行CI文件语法校验;
  • 3 手动触发运行流水线;
  • 4 流水的步骤, 可以查看各个阶段的运行日志;

3. Pipeline编辑器

tstmp_20230427073424

4、Pipeline开发工具与设置

1.Pipeline开发工具

image-20230427073740603

可视化编辑器

变更.gitlab-ci.yml文件后, 可以通过Visualize对CI文件中的定义进行可视化;

tstmp_20230427075340

语法检测校验

通过Lint可以检测当前CI文件是否存在语法错误;若存在语法错误可以根据提示进行修正;

tstmp_20230427075408

作业运行日志

一条流水线包含很多个作业,每个作业的运行日志可以在Jobs界面看到。

tstmp_20230427075439

Pipeline环境变量

预定义变量信息:https://docs.gitlab.com/ee/ci/variables/predefined_variables.html

image-20230427075542389

代码类

  • CI_COMMIT_AUTHOR 提交人
  • CI_COMMIT_BRANCH 提交分支
  • CI_COMMIT_MESSAGE
  • CI_COMMIT_REF_NAME
  • CI_COMMIT_SHORT_SHA

作业类:

  • CI_JOB_ID
  • CI_JOB_NAME
  • CI_JOB_STAGE
  • CI_JOB_URL

流水线类:

  • CI_PIPELINE_ID
  • CI_PIPELINE_SOURCE
  • CI_PIPELINE_TRIGGERED
  • CI_PIPELINE_URL

2.Pipeline设置

image-20230427073814952

General pipelines

管道权限、取消冗余管道、跳过历史部署作业;

image-20230427075817432

为项目自定义ci文件

image-20230508194139222

  1. 修改名称:gitlab-ci-cd.yml
  2. 自定义路径:…/ci/xx/xx/.yml
  3. 也是可以这种raw格式的:(但是切记,一定是可公开访问的路径,不能到凭据信息)

image-20230508194321806

image-20230508194335375

http://172.29.9.101:8076/devops6/devops-demo-service/-/raw/main/.gitlab-ci.yml

为项目设置流水线状态标志

支持Markdown、HTML、AsciiDoc格式。

tstmp_20230427075903

tstmp_20230427075918

💘 实战:为项目设置流水线状态标志-2023.5.8(测试成功)

image-20230508075135775

  • 实验环境
gitlab/gitlab-ce:15.0.3-ce.0
  • 实验软件(无)

  • 在项目代码的README.md文件里添加如下部分代码

[![pipeline status](http://172.29.9.101:8076/devops6/devops-demo-service/badges/main/pipeline.svg)](http://172.29.9.101:8076/devops6/devops-demo-service/-/commits/main)

此部分代码位置:gitlab项目-Settings-CI/CD-Gernral Pipelines-Pipeline Status

image-20230508074346644

image-20230508074414021

  • 本次在main分支README.md文件下添加如上部分代码

image-20230508074701798

  • 提交代码后,触发流水线,观察结果

image-20230508074732012

image-20230508074804499

符合预期。😘

设置管道(pipeline)预览权限

可以来到项目>Project information>Members:给这个项目里增加成员

image-20220506064111051

image-20220506064119368

Guest和非项目成员无法,看到管道中作业的日志和管道所生成的制品;

开启公共的管道访问:

  • 公共项目,每个人都可以访问。
  • 内部项目,对于除外部用户之外的所有登录用户
  • 私人项目,所有项目成员(Guest 或更高级别)。

可以来到项目>Settings>CI/CD>Genernal pipelines:配置管道权限!

image-20220506064541102

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码
x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号
《云原生架构师实战》

image-20230107215126971

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20230515221819681

🍀 csdn
https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎
https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20220507155808206

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Gitlab CI/CD指的是Gitlab提供的持续集成和持续交付的功能。它可以帮助开发团队实现自动化的构建、测试和部署过程,从而提高开发效率和软件质量。 要使用GitLab CI/CD,需要熟悉.gitlab-ci.yml配置文件的语法及其属性。这个配置文件定义了构建和部署流程的步骤、依赖关系和环境变量等信息。你可以根据项目的需求自定义配置文件,GitLab CI/CD会根据配置文件的内容来执行相应的操作。 GitLab CI/CDGitLab中内置的一个功能强大的工具,它可以将连续集成、交付和部署应用于软件项目,而无需依赖第三方应用程序或集成。具体来说,它通过使用GitLab Runner来执行构建和部署作业,可以支持各种不同的项目类型和编程语言。你可以在GitLab的界面上配置、管理和监控CI/CD管道,查看运行结果和日志。 总之,GitLab CI/CD是一个强大的工具,可以帮助开发团队实现持续集成和持续交付,提高软件开发的效率和质量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Gitlab CI/CD 简单介绍](https://blog.csdn.net/wangjiang_qianmo/article/details/122867335)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [使用GitLab进行CI/CD简介](https://blog.csdn.net/FatTigerx/article/details/103766541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值