Windows环境下,Jenkins+Gitee的CICD

Jenkins+Gitee的CICD

版本需求:

JDK:8或以上

Jenkins:2.492

1.Jenkins下载安装

https://www.jenkins.io/download/下载LTS的war包:

把下载好后的war包放到指定目录,并使用命令启动:

shell 复制代码
java -jar jenkins.war

使用浏览器打开localhost:8080用上面的密码进行登录:

点击"安装推荐的插件",然后等待安装:

输入用户信息,创建管理员账号:

配置实例:

点击"开始使用jenkins"。

2.配置Gitee和Item

2.1.下载插件

1.点击"Manager Jenkins",再点击"Plugins":

2.选择"Available Plugins",搜索并勾选,gitee、Maven Integration ,点击安装

等待安装完成:

3.安装完成后,重启jenkins,使用管理员账号登录。

2.2.配置环境

1.点击"Manager Jenkins",找到"Tools",在JDK中输入本地JDK的路径:

2.配置Git路径:

3.配置Maven路径:

4.点击保存。

2.3.配置Gitee令牌(可选)

1.点击"Manager Jenkins",找到"System":

2.在gitee下面新增,将远程仓库地址复制过来:

3.在jenkins中点击添加,选择"jenkins",创建令牌。将类型设置为Gitee API令牌,将在Gitee中创建的令牌复制过来:

设置好后点击"添加",再"save"保存。

2.4.配置Item

1.保存后回到首页,点击"新建item",输入任务名crud_demo,选择free style project,"确定"。新建item输入任务名称"crud_demo",一个自由风格的项目。

2.源码管理中,选择"git",并输入远程仓库地址:

3.点击下面的添加"jenkins",输入gitee网址的登录邮箱,作为用户名,输入gitee的密码,点击"添加":

4.在credential下拉框中选择刚才添加的账号,在Triggers中,勾选"Poll SCM",并输入日程表:

1、* * * * * # 每分钟自动执行

2、5个时间单位,分别代表分钟、小时、日期、月份、星期

4月2日15点半自动执行 ,例:30 15 2 4 *

3、6个特殊符号

  • 表示所有可能的取值

空格 用于时间单位的分割,有且只能又4个空格

  • 表示区间。周一到周五每天晚上6点执行:0 18 * * 1-5

, 表示枚举

/ 表示每隔多久执行一次。每隔10分钟执行一次:*/10 * * * *

H 用于分散服务器的负载

有时我们不需要一定在整点执行,如果我们希望在区间中任意时间点执行都可以的话

H可以帮我我们找一个最佳的时间点,分散服务器的压力。

每天晚上6点执行

0 6 * * *

这样一定在6点整执行,这时可能会和另一个jenkins任务冲突

H 6 * * *

这样会自动选择在6点到7点之间的一个比较空闲的时间执行

可能在6:01,也可能在6:59

5.在"Build"中输入maven的构建命令:

maven 复制代码
clean package -Dmaven.test.skip=true

6.在"Post Steps"中勾选"Run only if build succeeds"

7.在构建中,选择增加构建步骤,选择"execute windows batch commands"

8.输入运行环境的命令:

text 复制代码
set BUILD_ID=DONTKILLME

set port=8888
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /pid %%m -t -f

xcopy C:\Users\HP\.jenkins\workspace\test01\target\crud_demo-0.0.1-SNAPSHOT.jar D:\work_code\crud_demo\target\ /Y
echo 复制Jar包完成
start javaw -jar -Xms512m -Xmx1024m -Xmn512m D:\work_code\crud_demo\target\crud_demo-0.0.1-SNAPSHOT.jar
exit

以上命令释义:

第1行:set BUILD_ID=DONTKILLME

重新设置构建ID,防止Jenkins构建进程结束后,杀掉关联进程,即防止构建进程结束后,将构建的jar项目也同步停止
第3行:set port=8888

指定端口。这里的端口,需要与 Spring Boot 项目中的 yaml 文件配置的端口一致,主要是用来关闭当前端口的进程,用来重新构建。
第4行:for ... do taskkill ...

关闭8888端口的相关进程。

第6行:xcopy X Y /Y

将X文件复制到Y目录下,/Y是禁止提示以确认改写一个现存目标文件,即覆盖文件的时候,不需要提示,直接覆盖。

这里有两个问题:

1、X 文件是怎么知道的呢?

对于每个构建任务,都有构建历史,访问每个构建历史记录(如果还没构建过可以在IDEA中构建,或者随便输入一个路径,在构建的控制台查看):

可以查看每个构建记录的控制台输出内容,其中就有构建完成的jar包的详细信息:

2、为什么要复制一份?

下次构建的时候,需要删除现有的jar,重新构建新的jar。

如果直接运行生成的jar,下次构建的时候,无法删除,构建失败。

第8行:start javaw -jar XXX.jar

使用java命令启动jar项目。

中间的 -Xms512m -Xmx1024m -Xmn512m 参数是为jar项目分配内存,可以不写。

在第一次配置的时候,第8步暂时跳过,首先生成一个jar包后,确认了jar包的具体位置,再回来添加此配置。

9.点击保存后。

2.5.构建

1.点击"Build Now"开始构建,产生构建报告,如果是"√"则构建成功,如果是"×"则构建失败(失败原因可以查看控制台):

3.自动集成的提现

​ 在上面的步骤中,我们设置了一个触发器,即每间隔1分钟jenkins访问Gitee仓库。此时如果Gitee仓库更新,则会触发Jenkins自动拉去项目进行构建、部署。

​ 我们在项目根目录下创建了一个文本文件,并再次提交成功:

间隔一分钟后,Jenkins也完成了自动构建:

动集成的提现

​ 在上面的步骤中,我们设置了一个触发器,即每间隔1分钟jenkins访问Gitee仓库。此时如果Gitee仓库更新,则会触发Jenkins自动拉去项目进行构建、部署。

​ 我们在项目根目录下创建了一个文本文件,并再次提交成功:

外链图片转存中...(img-wrayEukD-1744772988098)

外链图片转存中...(img-wgqKnorE-1744772988098)

间隔一分钟后,Jenkins也完成了自动构建:

相关推荐
火云牌神42 分钟前
在windows系统中安装图数据库NEO4J
数据库·windows·neo4j
魔障阿Q3 小时前
windows使用bat脚本激活conda环境
人工智能·windows·python·深度学习·conda
全栈工程师修炼指南8 小时前
解锁 Jenkins Agent 技巧,容器化轻松实现分布式构建节点扩展
运维·分布式·jenkins
开花沼泽.10 小时前
CentOS9与Windows通过Samba实现永久共享配置
windows
梁萌10 小时前
Windows系统Jenkins企业级实战
运维·windows·ci/cd·svn·jenkins
不会飞的鲨鱼12 小时前
Windows系统下【Celery任务队列】python使用celery 详解(二)
开发语言·windows·python
扛枪的书生13 小时前
AD 侦查-LLMNR 毒化
windows·渗透·kali·提权·域渗透
时之彼岸Φ15 小时前
Windows:Powershell的使用
windows
七七小报17 小时前
uniapp-商城-51-后台 商家信息(logo处理)
java·服务器·windows·uni-app
霍志杰17 小时前
stable-diffusion windows本地部署
windows·stable diffusion