当前位置: 首页 > news >正文

jenkins配置+vue打包多环境切换

jenkins配置流水线过程

1.新建item

 加入相关的参数就行了。

流水线脚本设置

后端脚本
node {stage 'checkout'sh"""#每次打包清空工作空间目录rm -rf $workspace/*cd  $workspace#到工作空间下从远端svn服务端拉取代码svn co svn://10.1.19.21/repo/技术中台/低代码开发平台/projects/iiot-eqp-app/iiot-eqp-app --username "lipeigen" --password "DG-svn-123456""""stage 'Maven Build'sh"""cd $workspace/$app_name#编译后台包,生成jar包#/app/maven3.6/bin/mvn -e -U clean install -Dmaven.test.skip=true -P test --settings /app/maven3.6/conf/settings-iiot.xml/app/maven-3.6.2/bin/mvn -e clean install -Dmaven.test.skip=true -P test --settings /app/maven-3.6.2/conf/settings-iiot.xml"""stage 'deploy'sh"""echo "========start docker build========="cd $workspace/$app_namedocker login -u admin -p Harbor12345 10.1.19.21:21020sed -i 's/env_file/$env_file/g' Dockerfilesed -i 's/app_name/$app_name/g' Dockerfilesed -i 's/app_version/$app_version/g' Dockerfilesed -i 's/harbor_registry/10.1.19.21:21020/g' Dockerfiledocker build -t 10.1.19.21:21020/pro/$app_name:$image_version .docker push 10.1.19.21:21020/pro/$app_name:$image_versiondocker rmi 10.1.19.21:21020/pro/$app_name:$image_versionsed -i 's/image_version/$image_version/g;s/appname/$app_name/g;s/harbor_registry/10.1.19.21:21020/g;s/name_space/$name_space/g;s/containerport/$containerport/g;s/appport/$appport/g;s/replicas_num/$replicas_num/g' k8s-deployment-service.ymlecho "========start k8s deployment========="kubectl apply -f k8s-deployment-service.yml --namespace=$name_space --kubeconfig=/root/.kube/config"""}
前端脚本

前端打包分两种:

1种:手动本地 npm run build后上传dist前端打包文件

2种:本地不build,直接在jenkins上build,然后jenkins服务器上需要上传node_modules文件,例如         

cp -r /data/node_modules .
npm run build

node {stage 'checkout'sh"""#每次打包清空工作空间目录rm -rf $workspace/*cd  $workspace#到工作空间下从远端svn服务端拉取代码svn co svn://10.1.19.21/repo/技术中台/低代码开发平台/projects/iiot-eqp-app/iiot-eqp-web --username "lipeigen" --password "DG-svn-123456""""stage 'Vue Build'sh"""cd $workspace/$app_name#编译前台包,生成distif [ -d "$workspace/$app_name/dist/" ];thenecho "dist文件夹已存在,跳过打包..."elseecho "dist文件夹不存在,系统打包..."cp -r /data/node_modules .npm run buildfi"""stage 'deploy'sh"""echo "========start docker build========="cd $workspace/$app_namedocker login -u admin -p Harbor12345 10.1.19.21:21020sed -i 's/env_file/$env_file/g' Dockerfilesed -i 's/app_name/$app_name/g' Dockerfilesed -i 's/app_version/$app_version/g' Dockerfilesed -i 's/harbor_registry/10.1.19.21:21020/g' Dockerfiledocker build -t 10.1.19.21:21020/pro/$app_name:$image_version .docker push 10.1.19.21:21020/pro/$app_name:$image_versiondocker rmi 10.1.19.21:21020/pro/$app_name:$image_versionsed -i 's/image_version/$image_version/g;s/appname/$app_name/g;s/harbor_registry/10.1.19.21:21020/g;s/name_space/$name_space/g;s/containerport/$containerport/g;s/appport/$appport/g;s/replicas_num/$replicas_num/g' k8s-deployment-service.ymlecho "========start k8s deployment========="kubectl apply -f k8s-deployment-service.yml --namespace=$name_space --kubeconfig=/root/.kube/configtar -zcf vue.tar.gz nginx.confsshpass -p "e5hfz^I^X98LxQtC" scp -P 20000 -o StrictHostKeyChecking=no -r  $workspace/$app_name/vue.tar.gz Oper1@10.1.19.11:/usr/local/nginx/vhost/vue.tar.gzsshpass -p "e5hfz^I^X98LxQtC" ssh -p 20000 Oper1@10.1.19.11  /bin/bash -x /app2/deploy-vue.sh $app_namesshpass -p "RCJ5ADeKKtBWMwIe" scp -P 20000 -o StrictHostKeyChecking=no -r  $workspace/$app_name/vue.tar.gz Oper1@10.1.19.12:/usr/local/nginx/vhost/vue.tar.gzsshpass -p "RCJ5ADeKKtBWMwIe" ssh -p 20000 Oper1@10.1.19.12  /bin/bash -x /app2/deploy-vue.sh $app_name"""}
添加测试和生产的分组

上传jenkins插件 ,在文件中可以下载

vue多环境配置切换

增加env的三个配置环境文件,设置NODE_ENV="dev"

 修改package.json文件,配置不同环境build配置:

打包dev环境命令: npm run build

打包test环境命令: npm run test

打包prod环境命令: npm run prod

对应的jenkins脚本中的命令也进行修改

"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build --mode development","build:prod": "vue-cli-service build --mode production","build:test": "vue-cli-service build --mode test","lint": "vue-cli-service lint","fix-memory-limit": "cross-env LIMIT=8096 increase-memory-limit"},

http://www.lryc.cn/news/426216.html

相关文章:

  • idea和jdk的安装教程
  • HTML静态网页成品作业(HTML+CSS)——电影网首页网页设计制作(1个页面)
  • 大数据系列之:Flink Doris Connector,实时同步数据到Doris数据库
  • LabVIEW VI 多语言动态加载与运行的实现
  • Unity引擎基础知识
  • 练习题- 探索正则表达式对象和对象匹配
  • Java集合提升
  • uniapp 微信小程序生成水印图片
  • ElasticSearch相关知识点
  • css 文字图片居中及网格布局
  • 解决ImportError: DLL load failed while importing _rust: 找不到指定的程序
  • 集合-List去重
  • ST-LINK USB communication error 非常有效的解决方法
  • 探索CSS的:future-link伪类:选择指向未来文档的链接
  • 【C++】序列与关联容器(三)map与multimap容器
  • ActiveMQ、RabbitMQ、Kafka、RocketMQ在优先级队列、延迟队列、死信队列、重试队列、消费模式、广播模式的区别
  • 首款会员制区块链 Geist 介绍
  • CANoe软件中Trace窗口的筛选栏标题不显示(空白)的解决方法
  • 日期类代码实现-C++
  • 【问题记录+总结】VS Code Tex Live 2024 Latex Workshop Springer模板----更新ing
  • Linux运维_Bash脚本_源码安装Go-1.21.11
  • ShareSDK Twitter
  • word2vec 如何用多个词表示一个句子
  • IDEA中查看接口的所有实现类和具体实现类
  • DLL的导出和调用
  • vscode中调试cuda kernel
  • SQL的连接查询与pandas的对应关系
  • 【JS】中断和恢复任务序列
  • CentOS系统下安装NVIDIA显卡驱动
  • Linux 与 Windows 服务器操作系统 | 全面对比