jenkins共享ci阶段

news2024/9/24 19:18:12

jenkins共享ci阶段

需求

一个产品包含多个服务,这些服务的流水线都是类似的:制作制品+构建并推送镜像+构建并推送chart包+触发自动部署。我们期望将流水线拆分为ci流水线、cd流水线,ci流水线包含:制作制品+构建并推送镜像+构建并推送chart包,cd流水线包含:触发自动部署,ci流水线公用的只有一条,每个服务都有一条cd流水线。当构建cd流水线时先触发ci流水线,ci流水线执行完成后继续执行cd流水线各阶段

Pipeline项目实现共享ci阶段

创建ci流水线项目

  • 点击【New Item】选择Pipeline,填写项目名称
    在这里插入图片描述
    在这里插入图片描述
  • 将ci流水线项目配置成参数构建项目,配置需要的参数,以供构建时传递参数到执行流水线,根据不同服务的信息生成对应服务制品
    在这里插入图片描述
  • 配置通过调用url触发构建,输入框中的值为url触发时需要传递的token参数值。此ci流水线除可以供cd流水线触发,还可以通过代码调用url触发生成制品
    在这里插入图片描述
  • 根据需要编写Pipeline脚本。点击这里查看pipeline文档
//所有的脚本命令都放在pipeline中
pipeline {
    //指定任务在哪个集群节点中执行
    agent any
    
    stages {
        stage('打印参数及全局变量') {
            steps {
                sh 'echo ${gitUrl}; sleep 20'
                sh 'echo ${BUILD_ID} - ${BUILD_NUMBER}'
            }   
        }    
        
        stage('生成源码存储目录') {
            steps {
                echo '此ci阶段为产品下所有服务公用,因此需要将代码放置到根据uuid动态生成的目录'
            }   
        }
        
        stage('拉取gitlab仓库代码') {
            steps {
                echo '拉取代码到上部创建目录中'
            }   
        }
        
        stage('通过maven编译打包') {
            steps {
               sh '/u01/app/maven/bin/mvn clean package'
            }   
        }
        
        stage('生成并推送镜像') {
            steps {
               echo '生成并推送镜像'
            }   
        }
        
        stage('生成并推送chart包') {
            steps {
               echo '生成并推送chart包'
            }   
        }
    }

    post {
        always {
            echo '清理目录'
        }
    }
}

测试ci流水线项目

通过页面构建测试ci流水线
  • 点击【Build with Parameters】填写参数值,点击【Build】构建ci流水线
    在这里插入图片描述
通过url远程构建ci流水线
  • 使用postman配置GET请求,并配置好认证信息。token即上面ci流水线配置远程构建设置的token值
http://172.0.0.1:8200/view/hsops.cd28e65c-59e3-46fc-afd3-8002ab0b2128.devops-launch9/job/hskp-devops-service-p/buildWithParameters?token=12345&gitUrl=http://172.0.0.1:8181/hskp-devops-launch5/hand-hzero-gateway.git

在这里插入图片描述

创建cd流水线项目

每条cd流水线对应一个产品服务

  • 点击【New Item】选择Pipeline,填写项目名称
    在这里插入图片描述在这里插入图片描述
  • 将cd流水线项目配置成参数构建项目,配置需要的参数,以供构建时传递参数到执行流水线,这里需要配置的参数包含ci流水线需要的参数
    在这里插入图片描述
  • 根据需要编写Pipeline脚本。此脚本首先触发ci流水线项目构建,完成之后再触发部署
//所有的脚本命令都放在pipeline中
pipeline {
    //指定任务在哪个集群节点中执行
    agent any
    stages {
        stage('ci') {
            steps {
                build job: 'hskp-devops-service-p', wait: true, 
                    parameters:[string(name: 'gitUrl', value: 'http://172.23.16.219:8182/hskp-devops-launch5/hand-hzero-gateway.git')]
            }
        }    
        
        stage('部署') {
            steps {
                echo '执行部署'
            }   
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/498316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝牙协议栈之L2CAP使用

目录 前言一、逻辑链路层及自适应协议层(L2CAP)二、常用的L2CAP术语三、L2CAP的工作模式四、L2CAP通道五、L2CAP帧类型六、Fragmentation/Recombination七、Segmentation/Reassembly八、L2CAP MTU九、Controller to Host Flow Control十、总结 前言 本文…

七个值得推荐的物联网分析平台

物联网分析平台是一种软件工具,可以帮助企业收集和分析来自其广泛的物联网设备的数据。企业可以通过物联网收集大量数据,从消费者支出模式到流量使用,物联网数据分析平台在帮助企业获得竞争优势所需的洞察力方面至关重要。 物联网分析平台已…

「2023 最新」 Github、Gitlab Git 工作流「常用」 git 命令、规范以及操作总结

Git commit 规范 关于提交信息的格式,可以遵循以下的规则: feat: 新特性,添加功能fix: 修改 bugrefactor: 代码重构docs: 文档修改style: 代码格式修改test: 测试用例修改chore: 其他修改, 比如构建流程, 依赖管理 Git 基础知识 当我们通过…

Midjourney生成LOGO指南

目录 常见的Logo 宠物店Logo Graphic Logo​ Lettermark Logo​ Geometric Logo​ Mascot Logo​ 增加风格——艺术运动​ 每个产品都有自己的专属名称,也有自己专属的Logo,经过前几篇的学习,我相信你也有了一定的基础,今天…

TiDB实战篇-PD调度常见问题处理方法

常见的问题 调度产生和执行 常见的调度类型 参数调度的速度 调度典型场景 Leader分布不均匀监控 leader分布算法,每一个leader的size作为总和,还有TiKV的剩余空间等等。 可以手动设置权重。 分布不均衡处理 TiKV节点下线速度慢 TiKV下线速度慢解决方法 …

一文说透IO多路复用select/poll/epoll

概述 如果我们要开发一个高并发的TCP程序。常规的做法是:多进程或者多线程。即:使用其中一个线程或者进程去监听有没有客户端连接上来,一旦有新客户端连接,就新开一个线程(进程),将其扔到线程(或进程&…

C++——类和对象[下]

0.关注博主有更多知识 C知识合集 目录 1.再谈构造函数 1.1初始化列表 1.2初始化列表的初始化顺序 1.3构造函数的隐式类型转换 1.4explicit关键字 2.static成员 2.1static成员变量 2.2static成员函数 3.友元 3.1友元函数 3.2友元类 4.内部类 5.匿名对象 6.编译器…

美颜sdk对于移动端视频直播的优化效果研究报告

随着移动互联网的快速发展,移动端视频直播应用也越来越受到用户的青睐。然而,对于许多用户来说,直播的画质却成为了一个令人头疼的问题。为了解决这个问题,许多直播应用开始引入美颜sdk,以期提升直播画质和用户体验。本…

凌思微-蓝牙框架-流程理解

1.蓝牙SOC芯片主函数流程 int main() { sys_init_app(); ble_init(); dev_manager_init(dev_manager_callback); gap_manager_init(gap_manager_callback); gatt_manager_init(gatt_manager_callback); rtos_init(); ble_task_init(); app_task_init(); vTaskStartScheduler();…

第8章:聚合函数

目录 一、常见的聚合函数 二、GROUP BY 的使用 三、HAVING 的使用,过滤数据 四、SQL底层的执行原理 五、练习 一、常见的聚合函数 1.概念 聚合函数作用于一组数据,并对一组数据返回一个值。 2.聚合函数的类型 AVG(),SUM(),MAX(),MIN(),COUNT() 3. AV…

【Spring篇】AOP

🍓系列专栏:Spring系列专栏 🍉个人主页:个人主页 目录 一、AOP简介 1.什么是AOP? 2.AOP作用 3.AOP核心概念 二、AOP入门案例 1.需求分析 2.思路分析 3.环境准备 4.AOP实现步骤 三、AOP工作流程 1.AOP工作流程 2.AOP核心概念 四、AOP配置管…

Python小姿势 - 1. Python的设计理念

Python的设计理念 Python的设计理念是“优雅”、“明确”、“简单”。 优雅:Python代码风格优美,语法简洁明了,代码可读性高,易于理解和维护。 明确:Python语言规范清晰,标准库丰富,可用于开发各…

第五章 作业(123)【编译原理】

第五章 作业【编译原理】 前言推荐第五章 作业123 随堂练习课前热身04-17随堂练习04-17课前热身04-24 最后 前言 2023-5-3 22:12:46 以下内容源自《【编译原理】》 仅供学习交流使用 推荐 第四章 作业(123)【编译原理】 第五章 作业 1 1.令文法G为…

医生的百科词条怎么创建?医生的百科词条创建技巧值得你收藏

医生是医学领域中的专业人员,主要负责诊断、治疗和预防疾病。在现代社会中,医生的角色越来越重要,是社会中不可或缺的职业之一。 而随着互联网的发展,百度百科已成为人们获取信息的重要途径,医生想要提高自己的知名度和…

SpringBoot项目简单入门

一、创建项目 1、选择Spring Initializr 2、为了提高项目构建效率,可以尝试修改阿里脚手架,地址如下: https://start.aliyun.com 3、点击下一步 4、选择Web与spring Web,然后点击完成开始项目构建 5、项目构建完成如图所示 二、…

Linux基础知识—Linux

文章目录 1.认识Linux2.常见命令2.1ls2.2pwd2.3cd2.4touch2.5mkdir2.6rm2.7cp2.8mv2.9man2.10date2.11grep2.12ps2.13netstat 3.文件内容的操作3.1cat3.2vim3.3less3.4head3.5tail3.6管道|3.7重定向 4.管理软件4.1yum(在线的方式管理)4.2rpm(…

OnlineJudge-负载均衡式在线OJ

关于个人项目是在找实习以及参加秋招非常重要的简历内容,今天博主来介绍一下自己的一个项目。 开发环境:CentOS7、Makefile、g、vscode、MySQL Workbench 所用技术:C STL 标准库、Boost 准标准库(字符串切割)、cpp-httplib 第三方开源网络库 …

数据结构(C语言):两个字符串比较大小

一、一个小插曲 在写这篇文章之前,作者想先和大家分享一个小故事。如果你不想看这个小故事的话,可以直接跳到第二点哦。 为了锻炼自己的编码能力,平时作业和实验题的代码我都是不看书、不看老师的PPT,按照自己的思路一行一行敲出…

【STM32CubeMX】F103RTC时钟

前言 本文记录了我学习STM32CubeMX的过程,方便以后回忆。我们使用的开发板是基于STM32F103C6T6的。本章记录了RTC时钟的基础配置。下文调试时用到的串口来查看,不过串口的配置省略了。 步骤 实验目标:基于RTC时钟,查看它的秒计时…

Mac电脑配置李沐深度学习环境[pytorch版本]使用vscode

文章目录 第一步 M1芯片安装Pytorch环境安装Miniforge创建虚拟环境安装Pytorch 第二步 下载李沐Jupyter文件第三步 配置vscode参考 第一步 M1芯片安装Pytorch环境 安装Miniforge Mac打开终端(Mac电脑如何启动终端?打开启动台,搜索终端即可&…