Jenkins实现CICD

Jenkins实现CICD

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表达式是一种用于指定定时任务执行时间的格式,它由五个或六个空格分隔的时间字段组成,分别表示分钟、小时、日、月、周几以及可选的年份。

css 复制代码
* * * * *
- - - - -
| | | | |
| | | | +----- 星期几 (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服务器下,并对外访问

相关推荐
XIAOHEZIcode10 小时前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220701 天前
如何搭建本地yum源(上)
运维
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦4 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw