gitlab 添加 CI CD

Posted Jamgun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitlab 添加 CI CD相关的知识,希望对你有一定的参考价值。

gitlab 添加 CICD

什么是CICD

CI - 持续集成

  • 开发人员的自动化流程
  • 代码的新更改会定期构建、测试并合并到共享存储库中
  • 可以解决在一次开发中有太多应用分支,从而导致相互冲突的问题

CD - 持续交付

  • 开发人员的更改会自动进行错误测试并上传到存储库(如 GitHub 或容器注册表),然后由运维团队将其部署到实时生产环境中
  • 解决开发和运维团队之间可见性及沟通较差的问题
  • 目的就是确保尽可能减少部署新代码时所需的工作量

CD - 持续部署

  • 自动将开发人员的更改从存储库发布到生产环境,以供客户使用
  • 解决因手动流程降低应用交付速度,从而使运维团队超负荷的问题
  • 持续部署以持续交付的优势为根基,实现了管道后续阶段的自动化

![image-20210520230819462](/Users/zhangshihang/Library/Application Support/typora-user-images/image-20210520230819462.png)

配置步骤

只需要两步

添加.gitlab-ci.yml

  • 复制下文到.gitlab-ci.yml
  • 保存在gitlab repo的根路径下
stages:
  - build
  - test
  - deploy 

build_job:
  stage: build
  script:
   - echo "build success!"

test_job:
  stage: test
  script:
   - echo "test success!"
  dependencies:
   - build_job
   
deploy_job:
  stage: deploy
  script:
   - echo "deploy success!"
  dependencies:
   - test_job

配置runner

  • Settings -> CI/CD -> Runners,右侧为共享的runner,左侧为私有runner
  • 本质是添加运行脚本的机器
  • 按照gitlab的提示,在机器上安装runner,并注册到repo即可

pipeline含义

组成

  • stage
  • job
  • script

他们的层级关系是:

  • pipeline 由几个 stages 组成
  • stage 由几个 job 组成
  • job 也就是运行一些 脚本

比如我们最简单的yaml文件:

  • pipeline 由 build, test, deploy 三个 stage 组成
  • 每个 stage 由一个job组成,job中的stage字段表明了属于哪个stage
  • 每个 job 的script字段,可以是文件,可以直接写shell语句;我们直接打印 success
  • 他们更加复杂的关系,由其他关键字定义

主要关键字

全局参数

  • image:runner 以 docker 启动时的基础镜像
  • before_script:所有job执行前的脚本
  • after_script:所有job执行后的脚本

job参数

  • only:可以执行job的branch 和 tag
  • except:不可执行job的branch 和 tag
  • tags:可以执行的runner
  • artifacts:向后传递本job的产出
  • dependencies:定义job间依赖关系

以上是关于gitlab 添加 CI CD的主要内容,如果未能解决你的问题,请参考以下文章

如何使用GitLab和Rancher构建CI/CD流水线–Part 1

你能在 GitLab CI/CD 中添加外部 Maven 库吗

gitlab 的 CI/CD 配置管理

GitLab CI/CD

实践分享!GitLab CI/CD 快速入门

JenKins+gitlab搭建CI&CD