CICD持续集成(Jenkins+Git+Gogs)

news2024/12/23 22:41:31

1.Jenkins

                Jenkins 是一个开源的、用于构建和自动化软件开发流程的持续集成和交付工具。它提供了一个可扩展的平台,用于构建、测试和部署软件项目。通过使用 Jenkins,开发团队可以实现持续集成和交付,自动化构建和测试过程,提高软件开发的效率和质量。从而应用于各种软件开发项目和持续集成流水线中

                Jenkins的主要功能

                1. 自动化构建:Jenkins 可以从源代码版本控制系统(如Git、SVN等)中获取代码,并自                  动触发构建过程。它支持多种构建工具和构建类型,如Maven、Gradle、Ant等。

                2. 持续集成:Jenkins 可以将开发人员的代码变更合并到主干代码,并进行自动构建和                   测试,以确保代码的持续集成和验证。

                  3. 测试和报告:Jenkins 可以集成各种测试工具,如Allure、Selenium、Cucumber等,                 执行自动化测试,并生成测试报告和代码覆盖率报告。

              4. 部署和交付:Jenkins 可以与不同的部署工具和平台集成,自动化应用程序的部署和交               付过程,以实现持续交付和部署。

             5. 插件生态系统:Jenkins 提供了丰富的插件生态系统,允许用户根据需要选择和集成各             种插件,以扩展和定制其功

                Jenkins部署及启动
 

                1. 安装JDK的环境,在CMD当中输入: java -version 显示对应的版本号即可

                【 最新版本要用JDK11 】;

              2. 找到 Jenkins.war 的路径 , 并在改路径下进入cmd 或者 终端;

              3. 输入: java -jar <jenkins.war的路径> ,直至完成

                        然后在网址上输入127.0.0.1:8080 

                第一次构建的Jenkins我们看到的界面如下显示;其中在cmd或者终端搜索initialAdminPassword 则能找到你的admin的初始密码
 

输入该密码,点击 【继续】进入Jenkins项目;第一次进入可能会加载比较缓慢,等待片刻;即会显示下图界面,选择【安装推荐的插件】即可;等待它全部安装完成

然后输入一系列账号设置之后就可以进入主页

Jenkins拉取Git代码

方法一:直接填写命令拉取

        

这个方式不推荐,因为会有对应的层级关系,\workspace \仓库名\文件内容 ;而我们需要的是对应的\workspace下直接是我们的文件内容。换个概念就是把Jenkines看做是我们项目名。 所以这里推荐使用:方法二:使用源码管理拉取代码

方法二:使用源码管理拉取代码


保存项目点击【立即构建】并到工作空间运行后查看效果
 

区别:两者区别

一个是把对应的目录拉取一同放在工作空间中,一个把文件直接放在工作空间中,一般使用后面这种

Jenkins常用场景-构建触发器

                当我们拉取好了之后怎么进行定时的进行跑对应的脚本呢或者每隔多久进行跑脚本呢?那么在【构建触发器】当中有一个定时构建(Build periodically)
                

                        

此字段遵循Cron表达式的语法(略有不同)。具体地说,每行由5个字段组成,这些字段由TAB或空格分隔,用于指定任务何时执行
 

MINUTE HOUR DOM MONTH DOW


他们分别表示

MINUTE (分钟): 指定小时内的分钟数。取值范围为 0-59。

HOUR (小时): 指定一天内的小时数。取值范围为 0-23。

DOM (月份的第几天): 指定一个月内的日期。取值范围为 1-31。MONTH (月份): 指定一年内的月份。取值范围为 1-12。

DOW (星期几): 指定星期几。取值范围为 0-7,其中 0 和 7 都表示星期天

这些字段组合在一起,可以创建一个 cron 表达式,用于定时执行任务。例如,如果你的 cron 表达式是 "0 2 * * *" ,则表示任务在每天的凌晨 2点执行
 

以下是Cron表达式的一些常见用法示例

每15分钟构建一次: H/15 * * * * 或 */15 * * * *

每天8点构建一次: H 8 * * * 或 0 8 * * *

每天8点~17点,两小时构建一次: H 8-17/2 * * *

周一到周五,8点~17点,两小时构建一次: H 8-17/2 * * 1-5

每月1号、15号各构建一次,除12月: H H 1,15 1-11 *

Jenkins项目关联触发

比如一个项目构建完成之后,自动构建下一个脚本(项目)。那么在【构建触发器】当中有一个其它工程构建后构建(Build after other projects are built)

        

操作步骤

        第一步:创建一个新项目可以直接复制之前的项目。【假设这个是开发的项目】

        

                第二步:设置当前这个项目在API_Test(之前的项目)构建成功了,自动执行
        

                        

第三步:执行开发项目(ShopProject),自动执行测试项目(Api_test)

2.触发远程构建及Gogs的应用
 

                触发远程构建简单理解:当你的代码有更新的时候,希望Jenkins能够自动执行。但是因为对于Jenkins的触发远程构建触发,需要使用Webhook(钩子函数)要在同一个网络中。而像Gitee、GitLab、GitHub都是属于公共仓库,因此我们一般对应的源代码都在本地的仓库当中(包括很多同学都是内网的情况),所以常使用Gogs作为一个轻量级的自托管Git服务。

安装步骤

        1.根据你的系统选择安装包并且解压,放在非中文目录下;

      2. 进入到目录,输入: gogs web 即能启动服务;

      3. 待启动完毕之后,直接访问: http://127.0.0.1:3000/ 即可打开

操作步骤如下

1.新建一个文件夹,输入初始化的命令

git init

  2.把相关的文件中的文件复制到当前目录下

3.第一次提交会提示输入Gogs的账号密码,输入之后,刷新页面即可

        

               Gogs结合Jenkins进行构建

                1.设置【源码管理】,并且设置URL及对应的gogs的账号密码

Gogs结合Jenkins触发远程构建

        1.第一步:进入到Gogs的:gogs\custom\conf\app.ini文件底部添加数据并且重启Gogs 

        # 127.0.0.1 为Jenkins的IP地址

        LOCAL_NETWORK_ALLOWLIST = 127.0.0.1

 2.搜索 : Jenkins—>系统管理—>插件管理—>可选插件 搜索 Generic Webhook Trigger 选择进行下载即可(注意:下载之后记得重启Jenkins)



第三步:在Jenkins中 构建触发器 -勾选 Generic Webhook Trigger 并且随意填写 token值

第四步:在gogs当中添加Webhook:


http://127.0.0.1:8080/generic-webhook-trigger/invoke?token=值

当你的Gogs的代码更新,你可以在Jenkins看到项目被调用了


流程图

​​​​​​​
  
 

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

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

相关文章

Rust监控可观测性

可观测性 在监控章节的引言中&#xff0c;我们提到了老板、前端、后端眼中的监控是各不相同的&#xff0c;那么有没有办法将监控模型进行抽象、统一呢&#xff1f; 来简单分析一下&#xff1a; 业务指标实时展示&#xff0c;这是一个指标型的数据( metric )手机 APP 上传的数…

springboot在线考试 LW +PPT+源码+讲解

第三章 系统分析 3.1 可行性分析 一个完整的系统&#xff0c;可行性分析是必须要有的&#xff0c;因为他关系到系统生存问题&#xff0c;对开发的意义进行分析&#xff0c;能否通过本系统来补充线下在线考试管理模式中的缺限&#xff0c;去解决其中的不足等&#xff0c;通过对…

三让徐州 | 第8集 | 自古皆有死,人无信不立 | 三国演义 | 逐鹿群雄

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f4cc;这篇博客分享的是《三国演义》文学剧本第Ⅰ部分《群雄逐鹿》的第8️⃣集《三让徐州》的经典语句和文学剧本全集台词 文章目录 1.经典语句2.文学剧本台词…

通过Python脚本实现字符画

效果 讲解&#xff1a; 用于将3D视图的帧缓冲区转换为字符画&#xff0c;并将字符画输出到文本编辑器中。 首先&#xff0c;获取当前绑定的帧缓冲区、视口信息和视图像素。 然后&#xff0c;将像素矩阵转化为字符串&#xff0c;并将字符串写入到文本编辑器中。 设置文本编辑…

【软件测试】白盒测试(知识点 + 习题 + 答案)

《 软件测试基础持续更新中》 最近大家总是催更……&#xff0c;我也是百忙之中给大家详细总结了白盒测试的重点内容&#xff01; 知识点题型答案&#xff0c;让你用最短的时间&#xff0c;学到最高效的知识&#xff01; 整理不易&#xff0c;求个三连 ₍ᐢ..ᐢ₎ ♡ 目录 一、…

Oracle数据库使用指南基本概念

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 IDEA编程利器技巧(编写中……&#xff09; 5、面经吐血整理的 面试技…

将深度相机的实时三维坐标数据保存为excel文档

一、如何将数据保存为excel文档 1.excel文件库与相关使用 &#xff08;1&#xff09;导入相应的excel文件库&#xff0c;导入前先要进行pip安装&#xff0c;pip install xlwt import xlwt # 导入用于创建和写入Excel文件的库 (2) 建立一个excel文档&#xff0c;并在第0行写…

PyQt问题汇总(持续更新)

目录 1.抛出异常后QAppliaction自动闪退 2.Unbuntu共享文件夹自动挂载 1.抛出异常后QAppliaction自动闪退 开发阶段&#xff0c;PyQt5 QAppliaction会在遇到未捕获的异常时立即退出&#xff0c;它能够快速发现并报告错误&#xff0c;我在调用一些密码算法库的时候&#xff0…

利用SHAP算法解释BERT模型的输出

1 何为SHAP? 传统的 feature importance 只告诉哪个特征重要&#xff0c;但并不清楚该特征如何影响预测结果。SHAP 算法的最大优势是能反应每一个样本中特征的影响力&#xff0c;且可表现出影响的正负性。SHAP算法的主要思想为&#xff1a;控制变量法&#xff0c;如果某个特征…

个人开发实现AI套壳网站快速搭建(Vue+elementUI+SpringBoot)

目录 一、效果展示 二、项目概述 三、手把手快速搭建实现本项目 3.1 前端实现 3.2 后端方向 五、后续开发计划 一、效果展示 默认展示 一般对话展示&#xff1a; 代码对话展示&#xff1a; 二、项目概述 本项目是一个基于Web的智能对话服务平台&#xff0c;通过后端与第…

【图解大数据技术】Hive、HBase

【图解大数据技术】Hive、HBase Hive数据仓库Hive的执行流程Hive架构数据导入Hive HBaseHBase简介HBase架构HBase的列式存储HBase建表流程HBase数据写入流程HBase数据读取流程 Hive Hive是基于Hadoop的一个数据仓库工具&#xff0c;Hive的数据存储在HDFS上&#xff0c;底层基于…

41割队伍

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/387 题目描述 给定 𝑛n 个数字 𝑎1,�…

运维.Linux下执行定时任务(中:Cron的常用替代方案)

运维系列 Linux下执行定时任务&#xff08;中&#xff1a;Cron的常用替代方案&#xff09; - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAd…

阿里云智能编程助手的安装使用

https://help.aliyun.com/document_detail/2590613.html 通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力&a…

前端存储都有哪些

cookie 、sessionStorage、localStorange、http缓存 、indexDB cookie 由服务器设置&#xff0c;在客户端存储&#xff0c;然后每次发起同源请求时&#xff0c;发送给服务器端。cookie最多能存储4K数据&#xff0c;它的生存时间由expires属性指定&#xff0c;并且cookie只能被…

Mathematica训练课(46)-- 一些常用的画图函数

在前面的课程中&#xff0c;我们已经梳理了Plot的画图用法&#xff0c;今天就详细梳理一下其他的画图函数用法&#xff1b; 1. 画一条直线 2. Circle(圆) 3. Disk&#xff08;圆盘&#xff09; 4. 画出一个矩形 5. 箭头

MAS0902量产工具分享,MAS0902A开卡教程,MAS0901量产工具下载

MAS0902和MAS1102都是基于SATA3.2技术开发的DRAM-less SSD控制芯片&#xff0c;简单来说就是SATA协议无缓存主控。下面是我摸索的麦光黑金300 240G SSD开卡修复简易教程&#xff0c;也就是MAS0902量产过程&#xff1a; 注意&#xff1a;开卡转接线必须要用ASM1153E或JMS578主控…

Github Page 使用手册(保姆级教程!)

搭建个人网站&#xff1f;没有服务器&#xff1f;那不如尝试一下 Github Page &#xff01; 最近我正好在搭建个人网站&#xff0c;于是就写一篇博客来详细介绍 Github Page 的使用、部署方式吧&#xff01; 一、进入 Github 访问&#xff1a;github.com 如果你没有 github…

Redisson(分布式锁、限流)

注意Redisson是基于Redis的&#xff0c;所以必须先引入Redis配置&#xff08;参考SpringBoot集成Redis文章&#xff09; 1. 集成Redisson 引入依赖 <!-- 二选一,区别是第一个自动配置&#xff0c;第二个还需要手动配置也就是第二步自定义配置&#xff0c;注意版本号&…

【吊打面试官系列-MyBatis面试题】MyBatis 框架适用场合?

大家好&#xff0c;我是锋哥。今天分享关于 【MyBatis 框架适用场合 &#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; MyBatis 框架适用场合&#xff1f; 1、MyBatis 专注于 SQL 本身&#xff0c;是一个足够灵活的 DAO 层解决方案。 2、对性能的要求很高&#…