Gitlab runner的简单使用(一)

devtools/2024/9/23 15:46:30/

Gitlab runner的简单使用(一)

使用 GitLab CI 配置文件在 main 分支提交时触发作业

GitLab CI/CD 提供了一种强大的方式来自动化软件开发过程,包括构建、测试和部署应用程序。在这篇文章中,我们将介绍如何通过 GitLab CI 配置文件(.gitlab-ci.yml),在代码提交到 main 分支时触发一个简单的作业。这个作业的内容是记录提交日志并将其保存在 Runner 的日志文件中。

gitlabciyml__5">创建 .gitlab-ci.yml 文件

要实现这一目标,首先需要在项目的根目录下创建一个 .gitlab-ci.yml 文件。这个文件用于定义 CI/CD 管道以及各个作业的执行条件和步骤。

下面是一个简单的 .gitlab-ci.yml 配置示例,用于在 main 分支有提交时触发一个作业:

# 定义阶段
stages:- log# 定义作业
log_commit_message:stage: logscript:# 获取最后一次提交的消息- echo "Last commit message:" > commit_log.txt- git log -1 --pretty=%B >> commit_log.txt- echo "Commit log has been recorded."only:# 仅在 main 分支有提交时触发- mainartifacts:# 保存生成的日志文件作为构件paths:- commit_log.txt

配置文件解析

  1. stages: 这里我们定义了一个阶段,名为 log。GitLab CI/CD 中的阶段用于将流水线作业分组。在这个例子中,我们只有一个阶段,专门用于记录提交日志。

  2. log_commit_message 作业:

    • stage: log:指定该作业属于 log 阶段。
    • script:这里定义了作业的脚本。脚本的作用是获取最近一次的提交信息,并将其写入 commit_log.txt 文件中。
      • git log -1 --pretty=%B:这个命令会提取最后一次提交的提交消息。
    • only: - main:这个关键字指定了作业只会在 main 分支上有提交时才会触发。这确保了我们只有在主要分支上工作时,日志记录作业才会执行。
    • artifacts:通过 artifacts 关键字,我们指定要保存的文件。这里我们选择保存 commit_log.txt 文件,这样作业结束后可以查看和下载该日志文件。

gitlabciyml__44">提交 .gitlab-ci.yml 文件

.gitlab-ci.yml 文件提交到项目的 main 分支中:

git add .gitlab-ci.yml
git commit -m "Add CI configuration for logging commit messages"
git push origin main

作业的执行

每当有代码提交到 main 分支时,GitLab 会自动触发 log_commit_message 作业:

  1. GitLab Runner 会检测到在 main 分支的提交。
  2. 按照 .gitlab-ci.yml 中的定义,log_commit_message 作业会被触发。
  3. GitLab Runner 会执行该作业的脚本,生成一个包含最后一次提交消息的 commit_log.txt 文件。
  4. 生成的日志文件将被保存在作业的构件(Artifacts)中,可以通过 GitLab 的界面查看和下载。

查看作业日志

要查看日志文件:

  1. 在 GitLab 项目中,进入 CI/CD > Pipelines 页面。
  2. 找到最近一次在 main 分支上触发的流水线,点击进入。
  3. log_commit_message 作业中,可以看到作业的执行详情。点击 Download 按钮来下载 commit_log.txt 日志文件。

参考链接

  • GitLab CI/CD 官方文档: https://docs.gitlab.com/ee/ci/
  • GitLab Runner 官方文档: https://docs.gitlab.com/runner/
  • GitLab CI/CD YAML 配置参考: https://docs.gitlab.com/ee/ci/yaml/

在这里插入图片描述


http://www.ppmy.cn/devtools/116072.html

相关文章

Swagger 概念和使用以及遇到的问题

前言 接口文档对于前后端开发人员都十分重要。尤其近几年流行前后端分离后接口文档又变 成重中之重。接口文档固然重要,但是由于项目周期等原因后端人员经常出现无法及时更新, 导致前端人员抱怨接口文档和实际情况不一致。 很多人员会抱怨别人写的接口文档不…

在dataworks 中开发 pyodps作业使用 weasyprint 将html 转换成 PNG

背景 之前计算出每日top15存储量临时表,将表名、存储量、最后修改日期等关键信息通过 Markdown 的形式发送到企微群中,触达开发人员,使其及时清理以节省存储资源;但是 Markdown 格式看上去很乱,增加阅读成本&#xff…

MyBatis动态SQL中的`if`标签使用【后端 19】

MyBatis动态SQL中的if标签使用 引言 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在 MyBatis 中,动态 SQL 是一个非常强大的特性,它允许你根据不同的条件来动态构建 SQL 语句。if 标签是动态 SQL 中最常用的一…

Spring Boot 入门面试五道题

在准备Spring Boot面试时,从简单到困难设计面试题可以帮助你系统地复习和评估自己的掌握程度。以下是五个不同难度的Spring Boot面试题: 1. 简单题:什么是Spring Boot?它主要解决了什么问题? 答案: Sprin…

[Python]一、Python基础编程(2)

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\1、人工智能开发入门\1、零基础Python编程 1. 文件操作 把⼀些内容 ( 数据 )存储存放起来,可以让程序下⼀次执⾏的时候直接使⽤,⽽不必重新制作⼀份,省时省⼒ 。 1.1 文件的基本操作 1. 打开文件 2. 读写操作 3. 关闭…

数据库 MySQL 是否需要容器化?

容器的定义:容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题。 目前,容器和 Docker 依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也带来了一个热点问题被大家所争论不以…

STM32调试TIC12400笔记

工作中需要用到,但是有关这个芯片的参考资料好少,自己写一下调试过程,持续更新中,还没调完。 用的是正点原子的mini板,芯片是stm32f103RCT,需要知道spi的相关知识,先配置spi,用cube…

CentOS 中配置 OpenJDK以及多版本管理

以下是在 CentOS 中配置 OpenJDK 的步骤: 一、安装 OpenJDK 使用以下命令检查系统中是否已经安装了 Java: java -version如果已安装,会显示 Java 版本信息。如果未安装,则继续下一步。 使用 yum 安装 OpenJDK: yum ins…