持续集成交付CICD:GitLabCI 通过trigger触发流水线

2023-11-25 17:15

本文主要是介绍持续集成交付CICD:GitLabCI 通过trigger触发流水线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、理论

1.GitLabCI 

二、实验

1.搭建共享库项目

2.GitLabCI 通过trigger触发流水线

三、问题

1.项目app02未触发项目app01

2.GitLab 报502网关错误


一、理论

1.GitLabCI 

(1) 概念

 GitLab CI(Continuous Integration)是一种持续集成工具,它可以帮助开发团队在代码提交后自动构建、测试和部署项目。GitLab CI通过Pipeline(流水线)来实现这些功能。Pipeline是一个序列化的任务列表,每个任务代表了一个阶段的构建、测试或部署操作。

(2)特点

GitLabCI Pipeline的主要特点包括:

1) 阶段(Stages):Pipeline由一个或多个阶段组成,每个阶段表示一个构建、测试或部署环节。阶段按照顺序执行,每个阶段完成后,才会继续执行下一个阶段。2) 任务(Jobs):任务是Pipeline中的一个基本单元,代表一个阶段的某个操作。任务可以包括构建、测试、部署等环节。同一个阶段可以有多个任务,这些任务会并行执行。3) 触发器(Triggers):Pipeline的触发器用于指定在什么情况下启动Pipeline。例如,可以设置Pipeline在代码提交、合并请求或标签添加等事件触发时自动启动。4) 配置(Configuration):Pipeline的配置包括了一系列参数,如构建服务器、运行器、标签等。这些配置可以在GitLab CI的配置文件(如`.gitlab-ci.yml`)中进行设置。5) 运行器(Runners):运行器是GitLab CI的实际执行者,它负责执行Pipeline中的任务。运行器可以在不同的环境中部署,如本地、云平台或容器等。6) 代理(Agents):代理是运行在运行器上的软件,用于与GitLab CI服务器通信。代理可以执行GitLab CI服务器发布的命令,如构建、测试等。

(3)目标
通过GitLabCI Pipeline,开发团队可以实现自动化的工作流,提高项目开发的效率和质量。当代码提交后,GitLab CI会自动触发Pipeline,依次执行各个阶段的任务,直至项目构建、测试和部署完成。这有助于及时发现和修复代码问题,确保项目的稳定性和可靠性。

二、实验

1.搭建共享库项目

(1)新建项目

(2)app01项目来跑流水线

(3)修改代码

(4)app01提交

(5)成功

(6)查看日志

(7)新建job库文件

(8)共享库目录

(9)删除app01 ci文件

(10)获取raw格式

(11)保存地址

(12)库改为公共public

(13)组改为公共public

(14)库改为公共public

(15)改git clone

(16)手动跑流水线

(17)提交

(18)成功

(19)查看日志

2.GitLabCI 通过trigger触发流水线

(1)进入trigger触发界面配置

(2)添加token

(3)查看cURL触发命令

(4)查看项目ID

(5)postman添加request

(6)修改请求名称

(7)修改类型为post

(8)添加之前获取的RAW地址

(9)添加2个参数

(10)点击发送

(11)查看此时最后一个流水线是131

(12)成功触发流水线132

(13)显示状态为成功

(14)job显示triggered被触发

(15)查看日志

(16)查看流水线触发命令

(17)查看项目目录

(18)提交,用项目app02 去触发app01

(19)项目app02已触发app01,并睡眠100秒

(20)睡眠结束显示都已完成

(21)查看app02 的流水线133日志

(22)查看app01 的流水线134日志

(23)app03 的token明文显示不安全,需要修改

(24)app02项目设置CICD

(25)找到变量

(26)添加变量并选择加密

(27)显示已添加变量

(28)添加变量,减少睡眠时间

(29)查看此时的流水线,app01为134,app02为135

(30)提交

(31)成功

(32)查看app02 的流水线136日志

(33)查看app021的流水线137日志

(34)查看webhook命令

(35)app02项目设置Webhooks

(36)点击添加

(37)点击Push events

(38)发送成功

(39)显示成功

(40)显示被触发

(41)查看日志

(42)查看传送变量语法

(43)提交代码

(44)postman添加变量重新触发

(45)发送成功

(46)触发流水线154成功

(47)显示成功

(48)查看ciBuild日志

(49)查看ciTriggerTest日志

三、问题

1.项目app02未触发项目app01

(1)问题

(2)原因分析

查看日志,变量获取错误

(3)解决方法

修改变量的引用

修改前:

修改后:

2.GitLab 报502网关错误

(1)报错

(2)原因分析

webhook地址格式引用错误,发起大量无效请求,造成服务宕机

(3)解决方法

修改GitLab配置文件

vim /etc/gitlab/gitlab.rb

重新配置

gitlab-ctl reconfigure

重启

gitlab-ctl restart

查看进程

修改webhook地址

成功:

这篇关于持续集成交付CICD:GitLabCI 通过trigger触发流水线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424234

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项