Windows情况下,Jenkins+Gitee的CICD

打印 上一主题 下一主题

主题 1865|帖子 1865|积分 5595

Jenkins+Gitee的CICD

版本需求:
JDK:8或以上
Jenkins:2.492
1.Jenkins下载安装

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

把下载好后的war包放到指定目录,并利用下令启动:
  1. 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中,勾选"oll 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的构建下令:
  1. clean package -Dmaven.test.skip=true
复制代码

6.在“Post Steps”中勾选“Run only if build succeeds”
7.在构建中,选择增长构建步调,选择”execute windows batch commands“

8.输入运行情况的下令:

  1. set BUILD_ID=DONTKILLME
  2. set port=8888
  3. for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do taskkill /pid %%m -t -f
  4. xcopy C:\Users\HP\.jenkins\workspace\test01\target\crud_demo-0.0.1-SNAPSHOT.jar D:\work_code\crud_demo\target\ /Y
  5. echo 复制Jar包完成
  6. start javaw -jar -Xms512m -Xmx1024m -Xmn512m D:\work_code\crud_demo\target\crud_demo-0.0.1-SNAPSHOT.jar
  7. 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也完成了自动构建:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表