Git~GitLab当它是一个CI工具时

CI我们都知道,它是持续集成的意思,主要可以自动处理包括编译,测试,发布等一系列的过程,而GitLab也同样包含了这些功能,我们可以通过pipeline很容易的实现一个软件从编译,测试,发布的自动化过程,下面我们来看一下!

首先你需要添加.gitlab-ci.yml这个文件,它就是我们的执行管道,它里若干个job组成,而每个job对应上图的一个阶段,它们是顺序执行的,当一个链条出现问题,它下面的job就不会被执行了。

我们可以在这个文件里定义自己项目的一些阶段,每个阶段依赖的image镜像都可以分别设置,非常灵活

复制代码
stages:
- build
- cleanup_build
- test
- deploy
- cleanup

build_job:
  stage: build
  script:
  - make build

cleanup_build_job:
  stage: cleanup_build
  script:
  - cleanup build when failed
  when: on_failure

test_job:
  stage: test
  script:
  - make test

deploy_job:
  stage: deploy
  script:
  - make deploy
  when: manual

cleanup_job:
  stage: cleanup
  script:
  - cleanup after jobs
  when: always
复制代码

如果你是一个dotnetcore的项目,你可以为它设置restore,build,test,publish等阶段

复制代码
stages:
-restore
- build
- test
- deploy

restore_job:
  stage: restore
  script:
  - dotnet restore test.csproj

build_job:
  stage:build
  script:
  - dotnet build test.csproj

test_job:
  stage: test
  script:
  - dotnet test test.csproj

deploy_job:
  stage: deploy
  script:
  - make deploy
  when: manual
复制代码

当你提交之后,它可以自动执行,当前你也可以让它只对某个分支执行!

感谢各位阅读!

posted @   张占岭  阅读(1494)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2013-11-21 NodeJS系列~第三个小例子,NodeJs与Redis实现高并发的队列存储
2013-11-21 Redis学习笔记~目录
2013-11-21 NodeJS系列~第二个小例子,解决中文乱码的问题
2012-11-21 Js~在文件中引入其它相关的JS文件
点击右上角即可分享
微信分享提示