【GitLab】流水线入门

在GitLab中,流水线是一种 CI/CD(持续集成/持续交付)工具,用于自动化构建、测试和部署代码,实现自动化构建、测试和部署你的项目。它是一个在实际工作中很好用的工具,能在一定的测试开发中提高你的效率。

一、创建.gitlab-ci.yml文件

在项目根目录 下创建一个名为**.gitlab-ci.yml**的文件,用于定义流水线配置。这个文件使用YAML语法,其基本语法如下:

stages:
  - build
  - test
  - deploy

variables:
  APP_NAME: myapp

before_script:
  - echo "Before script: Setting up environment..."

build:
  stage: build
  script:
    - echo "Building the application..."

test:
  stage: test
  script:
    - echo "Running tests..."

deploy:
  stage: deploy
  script:
    - echo "Deploying the application to production..."

这是一个简单的例子,包含了三个阶段:构建(build)、测试(test)和部署(deploy)。每个阶段包含一个或多个作业(job),这些作业定义了要执行的具体命令。

当然实际使用肯定不是这三步都要用到,或许你只希望它帮你自动化编译并压缩.so文件,那么就在build中直接写所有流程即可,无需按照该格式严格编写,但是你要知道它的所有功能是哪些,它能干什么。

二、提交并推送配置文件

在前面有提到git的使用,如果你的**.gitlab-ci.yml文件** 是在vs code这样的编辑器本地编写的那么就需要上传至gitlab仓库中(这里要说一下,每次上传流水线会默认触发的),或者在gitlab中直接创建并编辑,显然第二种方法更快。

然后将**.gitlab-ci.yml文件**添加到Git仓库并推送到GitLab。如果你还不会使用git,点这里:

Git使用基础总结(从小白到新手版)-CSDN博客

当然在日常使用中,你不一定非要按照上述的示例文件来配置**.gitlab-ci.yml文件,**只要把你想完成的操作写在build下即可,像这样:

# 定义流水线的阶段
stages:
  - build
  - deploy

# 定义流水线中可能用到的变量
variables:
  DOCKER_IMAGE: "centos:7"

# 定义 build 阶段
build:
  stage: build
  # 在 Docker 中构建镜像并运行编译脚本
  script:
    - docker build -t $DOCKER_IMAGE .  # 构建 Docker 镜像
    - docker run --rm $DOCKER_IMAGE /compile-script.sh  # 运行在容器内的编译脚本
  tags:
    - x86_64-centers7 
  # 定义产物(编译后的文件)的路径
  artifacts:
    paths:
      - compiled-so-files/lib/  # 编译产物的目录

upload_to_nexus:
  stage: deploy
  script:
    - curl -v --upload-file mylib-so-files.tar.gz https://nexus.com/bin-package/
  only:
    - master
  tags:
    - x86_64-centers7 

在这个示例中,我们首先构建了一个doctor镜像来运行我们的脚本,脚本文件compile-script.sh是编好的脚本(将源码编译为镜像),然后将该镜像存入仓库,当然该仓库地址是虚拟的哈哈。

三、流水线到底是什么

提到这个问题,我觉得大家第一次接触的时候都不会一下认识清楚这是一个怎样的工具,但当你真的用一次以后,你就会有所体会,我对于流水线的理解:它 就是一个自动化工具,可以实现你想要且定义的一系列任务,无论是apt install make、 chmod 777还是上传仓库( - curl -v --upload-file mylib-so-files.tar.gz https://nexus.com/bin-package/only),它都可以完成(**解决反复多次使用低级命令或搭建环境这样一个浪费时间的问题**),并且是一个有记录的工具,它在什么时候完成了什么,出现的问题在哪都有记录。另外在流水线中你还可以构建doctor容器(一个容器化平台,用于轻量级、可移植、自包含的应用程序部署)或者你把它理解为**一个干净的虚拟机,其中无任何环境包括简单插件,**在这样的一个虚拟机中想要手动去完成各部分环境的搭建和部署是一件很难的事,这对应于将已经在成熟环境中写好但需要安装在新环境中那些繁琐的步骤,因此自动化部署成了最优解,这很节省时间。

四、运行流水线

1. 触发流水线

提交你的代码到 GitLab 仓库,然后打开 GitLab 界面。在项目页面,你会看到一个名为"CI / CD"的选项卡,点击进入。

在这个页面,你将看到最近的流水线记录。如果一切设置正确,新的提交将触发流水线的运行。

一旦推送了配置文件,GitLab会自动检测到变更并开始执行流水线。你还可以手动触发流水线,通过GitLab网站上的界面找到相应的操作。极狐GitLab CI/CD 入门 | 极狐GitLab

2. 查看流水线结果

在GitLab仪表板上,你可以查看流水线的执行过程和结果。这包括每个作业的执行日志、状态以及任何错误消息。

**3.**监视流水线执行

点击流水线记录,你将看到每个阶段的执行情况。你可以查看每个步骤的输出,以及任何错误或警告信息。

4. 调试和优化流水线

如果流水线失败,不要惊慌。点击失败的阶段,查看详细的输出和错误信息。这将帮助你找到问题并进行修复。

优化流水线也是一个逐步的过程。你可以添加更多的步骤、调整环境变量,以满足项目的需求。

五、结语

通过 GitLab 流水线,你可以实现代码的自动构建、测试和部署,提高项目的可靠性和效率。希望这个入门指南能够帮助你顺利使用 GitLab 流水线,享受自动化的好处!

更多C/C++语言、Linux系统、数据结构和ARM板实战相关文章,关注专栏:

手撕C语言

玩转linux

脚踢数据结构

系统、网络编程

探索C++

6818(ARM)开发板实战

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 🎉🎉🎉感谢关注🎉🎉🎉
相关推荐
zwjapple3 分钟前
typescript里面正则的使用
开发语言·javascript·正则表达式
小五Five5 分钟前
TypeScript项目中Axios的封装
开发语言·前端·javascript
前端每日三省7 分钟前
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?
开发语言·前端·javascript
和你一起去月球9 分钟前
TypeScript - 函数(下)
javascript·git·typescript
IT果果日记18 分钟前
ubuntu 安装 conda
linux·ubuntu·conda
凡人的AI工具箱20 分钟前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang
Python私教20 分钟前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特33 分钟前
环境变量简介
linux
chnming198736 分钟前
STL关联式容器之map
开发语言·c++
进击的六角龙37 分钟前
深入浅出:使用Python调用API实现智能天气预报
开发语言·python