Windows情况下,Jenkins+Gitee的CICD
Jenkins+Gitee的CICD版本需求:
JDK:8或以上
Jenkins:2.492
1.Jenkins下载安装
https://www.jenkins.io/download/下载LTS的war包:
https://i-blog.csdnimg.cn/img_convert/6081d1cb4decc2d48701e92a6f6a4149.png
把下载好后的war包放到指定目录,并利用下令启动:
java -jar jenkins.war
https://i-blog.csdnimg.cn/img_convert/cfee1a883e53a5e69cc6e206a1c2f587.png
利用欣赏器打开localhost:8080用上面的密码进行登录:
https://i-blog.csdnimg.cn/img_convert/014b83f3598b36e09485fc84f126253b.png
点击”安装保举的插件“,然后期待安装:
https://i-blog.csdnimg.cn/img_convert/89da23e84d72531f206df4b021ad3523.png
输入用户信息,创建管理员账号:
https://i-blog.csdnimg.cn/img_convert/4ea787c11b394d27f40a1fb0df7bf402.png
配置实例:
https://i-blog.csdnimg.cn/img_convert/684e3869ec0b8e75e93e0e012f2d753c.png
点击”开始利用jenkins“。
2.配置Gitee和Item
2.1.下载插件
1.点击“Manager Jenkins”,再点击“Plugins”:
https://i-blog.csdnimg.cn/img_convert/6b2a3e2d888f97c294f8fc48dc212004.png
2.选择"Available Plugins",搜索并勾选,gitee、Maven Integration ,点击安装
https://i-blog.csdnimg.cn/img_convert/3ab2f994588f4888e829e7209a8b55b1.png
期待安装完成:
https://i-blog.csdnimg.cn/img_convert/d05d6cad4ee722285dd78cd623deb715.png
3.安装完成后,重启jenkins,利用管理员账号登录。
2.2.配置情况
1.点击“Manager Jenkins”,找到“Tools”,在JDK中输入当地JDK的路径:
https://i-blog.csdnimg.cn/img_convert/cae4c857f3cd227e716daebee014dcdc.png
2.配置Git路径:
https://i-blog.csdnimg.cn/img_convert/296ce90bce9bedebb186e0e9f78f55f8.png
3.配置Maven路径:
https://i-blog.csdnimg.cn/img_convert/b29b8d169afc91665140df5b7c635908.png
4.点击生存。
2.3.配置Gitee令牌(可选)
1.点击“Manager Jenkins”,找到“System”:
https://i-blog.csdnimg.cn/img_convert/b3f7a6bc6e32191eb11d7728310ed057.png
2.在gitee下面新增,将远程堆栈地址复制过来:
https://i-blog.csdnimg.cn/img_convert/7fe51c008f9c7f409e8c2e6e863fed6c.png
https://i-blog.csdnimg.cn/img_convert/c87924c5284d2b3c9e99ff1904f405ee.png
https://i-blog.csdnimg.cn/img_convert/afb53a80537af23c1d4fb98e20fc047b.png
3.在jenkins中点击添加,选择“jenkins”,创建令牌。将范例设置为Gitee API令牌,将在Gitee中创建的令牌复制过来:
https://i-blog.csdnimg.cn/img_convert/b5da9b9e8f59093295c0d3899d2f6b46.png
设置好后点击“添加”,再“save”生存。
2.4.配置Item
1.生存后回到首页,点击“新建item”,输入任务名crud_demo,选择free style project,“确定”。新建item输入任务名称”crud_demo“,一个自由风格的项目。
https://i-blog.csdnimg.cn/img_convert/5ec104616722f9421cdd3bf65a3708b1.png
2.源码管理中,选择“git”,并输入远程堆栈地址:
https://i-blog.csdnimg.cn/img_convert/3bc3436208e9c2d3ee433c0be3c6d250.png
3.点击下面的添加“jenkins”,输入gitee网址的登录邮箱,作为用户名,输入gitee的密码,点击“添加”:
https://i-blog.csdnimg.cn/img_convert/57133cc584f4579d1eea304cb64a2f6a.png
https://i-blog.csdnimg.cn/img_convert/afeb7de9dbe4eb9860243e43de171985.png
4.在credential下拉框中选择刚才添加的账号,在Triggers中,勾选"Poll SCM",并输入日程表:
https://i-blog.csdnimg.cn/img_convert/f6d19cb2003bb0a4f7151fe805e1e40c.png
https://i-blog.csdnimg.cn/img_convert/9f821fcf5d66f271d93f7ca04eebe5af.png
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的构建下令:
clean package -Dmaven.test.skip=true
https://i-blog.csdnimg.cn/img_convert/ccc2363f717679c182805957eb4f459c.png
6.在“Post Steps”中勾选“Run only if build succeeds”
7.在构建中,选择增长构建步调,选择”execute windows batch commands“
https://i-blog.csdnimg.cn/img_convert/99b00032c50dfb09d744453eefcf548f.png
8.输入运行情况的下令:
https://i-blog.csdnimg.cn/img_convert/49cb21388c30a5be50178a47a4d71d8a.png
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中构建,或者任意输入一个路径,在构建的控制台检察):
https://i-blog.csdnimg.cn/img_convert/07ec9ed1c01e07fa07f5ac971ddfad6b.png 可以检察每个构建记载的控制台输出内容,其中就有构建完成的jar包的详细信息:
https://i-blog.csdnimg.cn/img_convert/8b02f76f6e31f445ef3c5f241959798f.png
https://i-blog.csdnimg.cn/img_convert/4a1c1ed693079bdb864963bc72297a70.png
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"开始构建,产生构建报告,如果是“√”则构建成功,如果是“×”则构建失败(失败原因可以检察控制台):
https://i-blog.csdnimg.cn/img_convert/61c5a67e0d36a698814176adbf086a2c.png
https://i-blog.csdnimg.cn/img_convert/71a06757b16349c3433715547f07ef23.png
3.自动集成的提现
在上面的步调中,我们设置了一个触发器,即每间隔1分钟jenkins访问Gitee堆栈。此时如果Gitee堆栈更新,则会触发Jenkins自动拉去项目进行构建、摆设。
我们在项目根目录下创建了一个文本文件,并再次提交成功:
https://i-blog.csdnimg.cn/img_convert/42b2e2d9fc4900ec643b0ed9d027066d.png
https://i-blog.csdnimg.cn/img_convert/44671ee7e01f115d859b29304cb4d7dd.png
间隔一分钟后,Jenkins也完成了自动构建:
动集成的提现
在上面的步调中,我们设置了一个触发器,即每间隔1分钟jenkins访问Gitee堆栈。此时如果Gitee堆栈更新,则会触发Jenkins自动拉去项目进行构建、摆设。
我们在项目根目录下创建了一个文本文件,并再次提交成功:
[外链图片转存中…(img-wrayEukD-1744772988098)]
[外链图片转存中…(img-wgqKnorE-1744772988098)]
间隔一分钟后,Jenkins也完成了自动构建:
https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=C%3A%5CUsers%5CHP%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20250416110722793.png&pos_id=img-RZ7UshNy-1744772988099
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]