一、新建任务
1、首先进入 Jenkins 控制台
2、点击 “新建Item”,命名为 “jeebiz-cloud”
;选择 “Freestyle project”
,点击 “确定”
二、General 配置
1、填写描述信息;勾选 “Discard old builds”
,指定“保持构建的天数”
和“保持构建的最大个数”
,可根据你的构建服务器资源进行配置,因为本机分配资源不是很充足,这里全部指定为:1
2、创建构建参数;选择 “This project is parameterized”
,然后选择“添加参数”
2.1、新建 Choice Parameter 类型参数:ServiceName
,用于指定发布的模块
名称:
ServiceName选项(项目目录):
jeebiz-cloud-admin
jeebiz-cloud-article
jeebiz-cloud-authz
jeebiz-cloud-console
jeebiz-cloud-consumer
jeebiz-cloud-facex
jeebiz-cloud-filestore
jeebiz-cloud-flowable
jeebiz-cloud-gateway
jeebiz-cloud-httppay
jeebiz-cloud-httpuid
jeebiz-cloud-hystrix
jeebiz-cloud-inform
jeebiz-cloud-logbiz
jeebiz-cloud-oauth2
jeebiz-cloud-provider
jeebiz-cloud-settings
jeebiz-cloud-webflux描述信息:
jeebiz-cloud-admin:微服务监控
jeebiz-cloud-article:文章管理服务
jeebiz-cloud-authz:认证授权服务
jeebiz-cloud-console:灰度发布管理服务
jeebiz-cloud-consumer:服务消费者示例
jeebiz-cloud-facex:人脸识别服务
jeebiz-cloud-filestore:文件存储服务
jeebiz-cloud-flowable:工作流服务
jeebiz-cloud-gateway:API网关服务
jeebiz-cloud-httppay:网络支付服务
jeebiz-cloud-httpuid:订单号服务
jeebiz-cloud-hystrix:Hystrix 监控服务
jeebiz-cloud-inform:消息通知服务
jeebiz-cloud-logbiz:安全审计服务(认证日志、访问日志)
jeebiz-cloud-oauth2:OAuth2 认证服务端
jeebiz-cloud-provider:服务提供者示例
jeebiz-cloud-settings:系统设置服务
jeebiz-cloud-webflux:Webflux 示例
2.2、新建 Choice Parameter 类型参数:profile
,用于指定发布的环境
名称:
profile选项(激活环境):
dev
test
qa
pre
pro描述信息:
dev:开发联调阶段环境(后端工程师、前端工程师进行接口联调)
test:功能测试阶段环境(测试工程师进行接口测试和功能测试;后端工程师、前端工程师协助进行bug调整)
qa:功能验证阶段环境(产品经理进行功能确认;后端工程师、前端工程师进行功能调整)
pre:产品预发布环境(系统发布前的准备;相关文档、系统功能、库表结构、部署方案进行确定)
pro:产品正式环境(系统功能、库表结构、部署方案完全确定)
三、源码管理
存储在 GitHub、Gitee、Gitlab 等平台的Git项目可选择Git模式;填写
Repository URL
,添加Credentials
即可完成代码厂库的配置。
四、构建触发器
如果需要远程自动触发Jenkins持续集成,则需要通过该功能进行触发器的配置;比如这里配置了代码提交后自动进行构建
五、构建环境
如果有特殊的构建环境需求,可在该部分进行相关配置;
这里仅配置了 “Add timestamps to the Console Output”,构建时控制台输出的内容加上时间戳
六、构建
前面完成了构建的准备工作,构建任务则是在该部分进行配置.
6.1、点击“增加构建步骤”
,然后选择“Execute shell”
6.2、在命令框内增加如下构建脚本
#!/bin/bash
function judge ()
{
if [ $? -eq 0 ];then
echo "success ok ok"
else
exit 1
fi
}
echo jenkins workspace : $WORKSPACE
echo project workspace : $WORKSPACE/$registry
cd $WORKSPACE/$registry && git pull
judge
cd $WORKSPACE/$registry/$ServiceName
judge
mvn clean package -U -P $profile
#/usr/local/maven3/bin/mvn clean package -U -P $profile
judge
sudo /www/wwwroot/$ServiceName/bin/jeebiz-boot status
if [ $? -eq 0 ];then
echo "is running"
sudo /www/wwwroot/$ServiceName/bin/jeebiz-boot stop
judge
ls /www/wwwroot/$ServiceName/lib/$ServiceName-*-SNAPSHOT.jar
if [ $? -eq 0 ]; then
mv -f /www/wwwroot/$ServiceName/lib/$ServiceName-*-SNAPSHOT.jar /www/wwwroot/backup/
judge
else
echo "file is not exist"
fi
mv -f $WORKSPACE/$registry/$ServiceName/target/$ServiceName-*-SNAPSHOT.jar /www/wwwroot/$ServiceName/lib/
judge
sudo /www/wwwroot/$ServiceName/bin/jeebiz-boot start
judge
else
echo "is stop"
ls /www/wwwroot/$ServiceName/lib/$ServiceName-*-SNAPSHOT.jar
if [ $? -eq 0 ]; then
mv -f /www/wwwroot/$ServiceName/lib/$ServiceName-*-SNAPSHOT.jar /www/wwwroot/backup/
judge
else
echo "file is not exist"
fi
mv -f $WORKSPACE/$registry/$ServiceName/target/$ServiceName-*-SNAPSHOT.jar /www/wwwroot/$ServiceName/lib/
judge
sudo /www/wwwroot/$ServiceName/bin/jeebiz-boot start
judge
fi
七、构建后操作
更新时间:2023-12-28 09:15