一、新建任务

1、首先进入Jenkins 控制台

2、点击 “新建Item”,命名为 “jeebiz-ui”;选择 “Freestyle project”,点击 “确定”

二、General 配置

1、填写描述信息;勾选 “Discard old builds”,指定“保持构建的天数”“保持构建的最大个数”,可根据你的构建服务器资源进行配置,因为本机分配资源不是很充足,这里全部指定为:1

2、创建构建参数;选择 “This project is parameterized”,然后选择“添加参数”

2.1、新建 Choice Parameter 类型参数:option ,用于指定构建的类型

  • 名称:
    option

  • 选项:
    deploy
    rollback
    build
    deleteAndbuild

  • 描述信息:
    build:编译并构建docker镜像;仅发布到Habor仓库
    deploy:编译并构建docker镜像;发布到Habor仓库并部署到K8s集群;
    rollback:回滚到指定版本;
    deleteAndbuild:删除组件模块并构建docker镜像并发布到Habor中

2.2、新建 Choice Parameter 类型参数:moudle ,用于指定发布的模块
  • 名称:
    moudle

  • 选项:
    jeebiz-ui-admin
    jeebiz-ui-element
    jeebiz-ui-iview
    jeebiz-ui-layui
    jeebiz-ui-mui

  • 描述信息:
    jeebiz-ui-admin:移动资源管理后台
    jeebiz-ui-element:基于 element 实现的后台界面
    jeebiz-ui-iview:基于 iview 实现的后台界面
    jeebiz-ui-layui:基于 layui 实现的后台界面
    jeebiz-ui-mui:基于 mui 实现的移动界面
    jeebiz-ui-uniapp:基于 uni-app 实现的多终端移动项目

2.3、新建 Choice Parameter 类型参数:profile ,用于指定发布的环境

  • 名称:
    profile

  • 选项(激活环境):
    dev
    test
    qa
    pre
    prod

  • 描述信息:
    dev:开发联调阶段环境(后端工程师、前端工程师进行接口联调)
    test:功能测试阶段环境(测试工程师进行接口测试和功能测试;后端工程师、前端工程师协助进行bug调整)
    qa:功能验证阶段环境(产品经理进行功能确认;后端工程师、前端工程师进行功能调整)
    pre:产品预发布环境(系统发布前的准备;相关文档、系统功能、库表结构、部署方案进行确定)
    prod:产品正式环境(系统功能、库表结构、部署方案完全确定)

2.4、新建 String Parameter 类型参数:version ,用于指定发布的版本(优先取当前构建版本号)

  • 名称:
    version

  • 默认值
    0

  • 描述信息:
    指定构建的版本号;

三、源码管理

存储在 GitHub、Gitee、Gitlab 等平台的Git项目可选择Git模式;填写 Repository URL,添加 Credentials 即可完成代码厂库的配置。

四、构建触发器

如果需要远程自动触发Jenkins持续集成,则需要通过该功能进行触发器的配置;比如这里配置了代码提交后自动进行构建

五、构建环境

如果有特殊的构建环境需求,可在该部分进行相关配置;

这里仅配置了 “Add timestamps to the Console Output”,构建时控制台输出的内容加上时间戳

六、构建

前面完成了构建的准备工作,构建任务则是在该部分进行配置.

6.1、点击“增加构建步骤”,然后选择“Execute shell”

6.2、在命令框内增加如下构建脚本
cd $WORKSPACE/$moudle
case $deploy in
build)
    echo "build"
    npm install
    npm run build
    cd ./dist
    tar -czvf ../jeebiz-ui.tar.gz *
    cd $WORKSPACE
    docker build -t 192.168.1.114/jeebiz-ui/$moudle:$BUILD_NUMBER .
    docker login -uadmin -pKnowway123 192.168.1.114
    docker push 192.168.1.114/jeebiz-ui/$moudle:$BUILD_NUMBER
    docker rmi --force `docker images |grep $moudle|awk '{print $3}'`
    ;;
deleteAndbuild)
    echo "deleteAndbuild"
    # 首先删除node_services,在出现过1次NPM因为网络原因的失败install之后,再次运行前端程序时,报错解决
    rm -rf node_services
    rm -rf package-lock.json
    npm install
    npm run build
    cd ./dist
    tar -czvf ../jeebiz-ui.tar.gz *
    cd $WORKSPACE
    docker build -t 192.168.1.114/jeebiz-ui/$moudle:$BUILD_NUMBER .
    docker login -uadmin -pKnowway123 192.168.1.114
    docker push 192.168.1.114/jeebiz-ui/$moudle:$BUILD_NUMBER
    docker rmi --force `docker images |grep $moudle|awk '{print $3}'`
    ;;
deploy)
    echo "deploy"
    npm install
    npm run build
    cd ./dist
    tar -czvf ../jeebiz-ui.tar.gz *
    cd $WORKSPACE
    docker build -t 192.168.1.114/jeebiz-ui/$moudle:$BUILD_NUMBER .
    docker login -uadmin -pKnowway123 192.168.1.114
    docker push 192.168.1.114/jeebiz-ui/$moudle:$BUILD_NUMBER
    docker rmi --force `docker images |grep $moudle|awk '{print $3}'`
    rancher login https://192.168.2.250/v3 --token token-td2tt:pkgvwss26vwxh52qckkxzrfgm86pcbpblwxn4qs464l49jncvqpsch  --context c-w59t6:p-8dv8x --skip-verify
    rancher kubectl set image Deployment/$moudle $moudle=192.168.1.114/jeebiz-ui/$moudle:$BUILD_NUMBER -n $profile
    ;;
rollback)
    echo "rollback"
    echo "rollback version:$version"
    rancher login https://192.168.2.250/v3 --token token-td2tt:pkgvwss26vwxh52qckkxzrfgm86pcbpblwxn4qs464l49jncvqpsch  --context c-w59t6:p-8dv8x --skip-verify
    rancher kubectl set image Deployment/$moudle $moudle=192.168.1.114/jeebiz-ui/$moudle:$version -n $profile
    ;;
*)
    exit
    ;;
esac

七、构建后操作

作者:Jeebiz  创建时间:2019-09-15 22:29
 更新时间:2023-12-28 09:15