Jenkins实现CICD

Jenkins实现CICD

  • JenkinsCI简介
    • 环境安装
    • 新建任务
    • 源码管理
    • 构建配置
    • 发送邮件
    • 配置自动化项目
    • 定时构建
  • JenkinsCD简介
    • 配置ssh保证其可以免登录
    • 接下来配置github的webhook
    • 正式实现自动化打包master主分支的代码
    • 将前端三剑客代码文件发送到网站服务器对应的tomcat
  • Jenkins面试题

JenkinsCI简介

环境安装

使用 Jenkins 实现自动化集成部署,首先要准备三台服务器。

  • Git 服务器
  • 业务服务器
  • Jenkins 服务器

新建任务

在 Jenkins 管理页面,新建Item,也就是新建构建任务。
在这里插入图片描述
填写任务名称:
在这里插入图片描述

源码管理

在这里插入图片描述
分支配置:
在这里插入图片描述

构建配置

在这里插入图片描述

在配置windows批处理命令的时候,我们首先打开cmd,看看如何利用cmd启动我们的自动化项目:在cmd中输入以下命令:【因为jenkins执行代码步骤是和cmd一模一样的】
在这里插入图片描述

发送邮件

在这里插入图片描述
紧接着配置一下Jenkins的地址和系统管理员的邮箱地址
在这里插入图片描述
鼠标往下拉继续配置【邮件通知插件】的细节
在这里插入图片描述
之后在邮箱里面打开smtp的服务
在这里插入图片描述
上面可以申请授权码,获取授权码并填写在邮件插件的配置项里
在这里插入图片描述
填写好之后可以在最下面测试一下
在这里插入图片描述

配置自动化项目

找到我们的自动化项目任务
在这里插入图片描述
点击配置然后拉到最下面
在这里插入图片描述
填写你要发送邮件给谁【企业里面一般是企业微信邮箱,或者飞书邮箱】
在这里插入图片描述

定时构建

在这里插入图片描述
在这里输入脚本,修改时区
在这里插入图片描述
复制上面的修改时区的脚本指令:将时间改成上海
System.setProperty(‘org.apache.commons.jelly.tags.fmt.timeZone’,‘Asia/Shanghai’)
在这里插入图片描述
运行之后看结果是正确的,如果代码有误,result这一栏不会有任何打印
然后找到项目点击配置,并设置每隔两分钟跑一次构建
在这里插入图片描述

在Jenkins中设置定时项目的格式通常使用Cron表达式。Cron表达式是一种用于指定定时任务执行时间的格式,它由五个或六个空格分隔的时间字段组成,分别表示分钟、小时、日、月、周几以及可选的年份。

* * * * *
- - - - -
| | | | |
| | | | +----- 星期几 (0 - 7) (星期天为0或7)
| | | +------- 月 (1 - 12)
| | +--------- 日期 (1 - 31)
| +----------- 小时 (0 - 23)
+------------- 分钟 (0 - 59)

在这里插入图片描述

JenkinsCD简介

配置ssh保证其可以免登录

title 随意写, key 栏输入刚复制的公钥,可以用cat 命令来查看公钥,配置ssh的目的是实现自动登录git仓库而不用输入密码用户名。

在这里插入图片描述

接下来配置github的webhook

在这里插入图片描述

正式实现自动化打包master主分支的代码

首页 -> 系统管理 -> 插件管理 -> 可选插件 -> 选中 NodeJS 以及 Publish Over SSH -> 安装 -> 等待安装完成 (下载一下插件)
NodeJS: 代码运行环境
Publish Over SSH: 打包完成后发送到服务器

在这里插入图片描述
下面到拉取代码打包了,以前端代码为例:后端代码配置一样的,只是用的环境插件不一样而已。
首先配置全局 NodeJS 插件:
首页 -> 系统管理 -> 全局工具配置 -> NodeJS -> 新增
在这里插入图片描述
构建项目中新增 NodeJS 构建环境:
项目配置 -> 构建环境 -> 选择刚刚配置的 node 环境 -> 构建 -> 执行 shell -> 安装依赖 -> 打包 -> 压缩
echo “hello world”
npm install
npm run build
cd dist
tar zcvf dist.tar.gz ./*

在这里插入图片描述

将前端三剑客代码文件发送到网站服务器对应的tomcat

在这里插入图片描述
在这里插入图片描述

Jenkins面试题

  • 1、你用过jenkins吗,你知道jenkins是如何实现CI的吗?

1.安装和配置 Jenkins: 首先,在服务器上安装和配置 Jenkins。
2.创建 Jenkins 项目: 在 Jenkins 控制台中创建一个新项目(也称为作业或任务)。
3.设置源代码管理: 在项目配置中,配置您的版本控制系统(如 Git、SVN 等),
4.设置构建触发器: 在项目配置中,选择构建触发器为“定时构建(Build periodically)”,然后设置定时执行的 Cron 表达式。
5.配置构建步骤: 在项目配置中,添加构建步骤,以执行您的自动化代码和测试脚本。这可以是 Shell 脚本
6.设置邮件通知: 在项目配置中,添加邮件通知,配置 Jenkins 在构建完成后向团队成员发送构建状态更新和测试报告。
7.保存并触发构建: 完成项目配置后,保存配置并手动触发一次构建,以确保所有设置都正常工作。

  • 2、你是如何通过一系列配置来实现这些功能的呢?

首先,我在jenkins上用windows批处理输入能够运行代码的指令,这样就实现了手动执行自动化代码
然后,配置邮箱,发送邮件,这里用到了e-mail notification插件去发送邮件
最后,配置定时执行的时间,比如每天晚上九点执行自动化代码

  • 3、功能的Jenkins是你搭建的吗还是本来就有的?

如果公司是小公司就说自己搭建的
如果是中大型公司就说本来就有,我自己看过搭建文档的,我知道搭建流程

  • 4、为什么可以用windows批处理输入命令就可以运行代码了?

因为这里的执行和cmd里面执行是一样的,所以能运行代码

  • 5、配置邮箱过程中要配置密码,这个密码是邮箱密码吗?

不是的,是邮箱授权码

  • 6、jenkins你们是放到哪个服务器上?

公司的项目是放到linux上的,Jenkins是放到windows上的。

-7、 jenkins实现cd你了解多少?

1、配置仓库和分支,能够实现拉去master分支的代码到本地
2、配置webhook来通知jenkins,仓库里面的代码发生变化,需要重新拉去构建代码
3、打包我们拉取的master主分支代码,编译成为前端三剑客产物,以及后端jar包
4、通过publish over ssh的插件把前端三剑客产物推送到tomcat服务器下,并对外访问

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript发票查验接口如何集成?返回错误的信息原因是什么呢?

发票查验的过程中,很可能出现各种各样的问题,那么返回错误信息的原因一般可能是因为以下几种原因:第一种是接口没有调通,第二种是本身发票就是一张错票、假票,第三种可能是税局系统或网络问题等等,如果在使…

迈向数字化医疗:互联网医院APP开发中的设计思路与技术要点

在开发互联网医院APP时,需要综合考虑设计思路和技术要点,确保用户体验和医疗服务质量的提升。接下来,小编将从设计思路和技术要点两个方面进行讲解。 一、设计思路 用户导向:在设计互联网医院APP时,需要将用户体验放在…

ADB 命令之 模拟按键/输入

ADB 命令之 模拟按键/输入 模拟按键/输入 在 ​​adb shell​​​ 里有个很实用的命令叫 ​​input​​&#xff0c;通过它可以做一些有趣的事情。 ​​input​​ 命令的完整 help 信息如下&#xff1a; Usage: input [<source>] <command> [<arg>...] Th…

[人工智能] AI为农业赋能:智能灌溉系统

前言 人工智能&#xff08;AI&#xff09;在农业方面具有广泛的应用前景&#xff0c;这主要得益于其在数据处理、预测分析和决策优化等方面的优势。 农业生产涉及到大量的数据&#xff0c;包括土壤湿度、气温、降雨量、植物生长情况等。人工智能可以利用先进的数据处理技术&…

AE——重构数字(Pytorch+mnist)

1、简介 AE&#xff08;自编码器&#xff09;由编码器和解码器组成&#xff0c;编码器将输入数据映射到潜在空间&#xff0c;解码器将潜在表示映射回原始输入空间。AE的训练目标通常是最小化重构误差&#xff0c;即尽可能地重构输入数据&#xff0c;使得解码器输出与原始输入尽…

分享一个宝藏课程:近屿AIGC工程师和产品经理训练营

说起AIGC&#xff0c;大家都会自然地想到近两年火的一塌糊涂的ChatGPT,而开发出它的OpenAI&#xff0c;去年年底的年化收入已突破16亿美元&#xff0c;部分OpenAI的管理层认为&#xff0c;按目前进度&#xff0c;到2024年底&#xff0c;OpenAI的年化收入至少能达到50亿美元。而…

风险与收益

风险与收益 影响资产需求的主要因素财富总量预期收益率资产的流动性影响流动性的主要因素 风险 如何降低风险系统风险和非系统风险机会集合与有效集合资产组合理论 影响资产需求的主要因素 影响资产需求的主要因素包括&#xff1a;财富总量、预期收益率、资产的流动性和风险。…

移位运算与乘法

描述 题目描述&#xff1a; 已知d为一个8位数&#xff0c;请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输入的d有效&#xff08;d给出的信号的上升沿表示写入有效&#xff09; 信号示意图&#xff1a; 波形示意图&#xff1a; 输入描述&#…

如何同时安全高效管理多个谷歌账号?

您的业务活动需要多个 Gmail 帐户吗&#xff1f;出海畅游&#xff0c;Gmail账号是少不了的工具之一&#xff0c;可以关联到Twitter、Facebook、Youtube、Chatgpt等等平台&#xff0c;可以说是海外网络的“万能锁”。但是大家都知道&#xff0c;以上这些平台注册多账号如果产生关…

如何一键展示全平台信息?Python手把手教你搭建自己的自媒体展示平台

前言 灵感源于之前写过的Github中Readme.md中可以插入自己的js图片和动态api解析模块&#xff0c;在展示方面十分的美观&#xff1a; 这方面原理可以简化为&#xff0c;在Markdown中&#xff0c;你可以使用HTML标签来添加图像&#xff0c;就像这样&#xff1a; <tr><…

代码随想录Day25:回溯算法Part2

Leetcode 216. 组合总和III 讲解前&#xff1a; 这道题如果掌握了组合那道题的话就变得非常容易了&#xff0c;其实就是多加了一个参数的问题&#xff0c;我们可选的数字从可变的变成了1-9固定&#xff0c;然后呢要找的组合大小还是k&#xff0c;这次多加一个条件就是组合中的…

打断点调试代码的思路(找bug的思路)二分法

现象&#xff1a; 当断点运行到此处&#xff0c;卡死 二分法&#xff1a; 用断点把程序切段&#xff0c;前一段&#xff0c;后一段 **前一段&#xff1a;检查变量值&#xff0c;如无问题&#xff0c;则说明没有任何问题 问题必然出在后一段 后一段&#xff1a;人为检查&…