【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)开发板实战

📢写在最后

  • 今天的分享就到这啦~
  • 觉得博主写的还不错的烦劳 一键三连喔~
  • 🎉🎉🎉感谢关注🎉🎉🎉
相关推荐
_oP_i1 分钟前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
charlie1145141917 分钟前
C++ STL CookBook
开发语言·c++·stl·c++20
袁袁袁袁满7 分钟前
100天精通Python(爬虫篇)——第113天:‌爬虫基础模块之urllib详细教程大全
开发语言·爬虫·python·网络爬虫·爬虫实战·urllib·urllib模块教程
weixin_437398219 分钟前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~11 分钟前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
ELI_He99913 分钟前
PHP中替换某个包或某个类
开发语言·php
小林熬夜学编程18 分钟前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
Hacker_Fuchen20 分钟前
天融信网络架构安全实践
网络·安全·架构
m0_7482361121 分钟前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
炫彩@之星22 分钟前
Windows和Linux安全配置和加固
linux·windows·安全·系统安全配置和加固