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

news2024/11/25 20:30:02

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_name

            docker login -u admin -p Harbor12345 10.1.19.21:21020


            sed -i 's/env_file/$env_file/g' Dockerfile

            sed -i 's/app_name/$app_name/g' Dockerfile

            sed -i 's/app_version/$app_version/g' Dockerfile

            sed -i 's/harbor_registry/10.1.19.21:21020/g' Dockerfile

            docker build -t 10.1.19.21:21020/pro/$app_name:$image_version .

            docker push 10.1.19.21:21020/pro/$app_name:$image_version

            docker rmi 10.1.19.21:21020/pro/$app_name:$image_version


            sed -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.yml


            echo "========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

            #编译前台包,生成dist

            if [ -d "$workspace/$app_name/dist/" ];then

            echo "dist文件夹已存在,跳过打包..."

            else

            echo "dist文件夹不存在,系统打包..."

            cp -r /data/node_modules .
            npm run build
            
            fi

            """

            stage 'deploy'

            sh"""

            echo "========start docker build========="

            cd $workspace/$app_name

            docker login -u admin -p Harbor12345 10.1.19.21:21020


            sed -i 's/env_file/$env_file/g' Dockerfile

            sed -i 's/app_name/$app_name/g' Dockerfile

            sed -i 's/app_version/$app_version/g' Dockerfile

            sed -i 's/harbor_registry/10.1.19.21:21020/g' Dockerfile

            docker build -t 10.1.19.21:21020/pro/$app_name:$image_version .

            docker push 10.1.19.21:21020/pro/$app_name:$image_version

            docker rmi 10.1.19.21:21020/pro/$app_name:$image_version


            sed -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.yml


            echo "========start k8s deployment========="

            kubectl apply -f k8s-deployment-service.yml --namespace=$name_space --kubeconfig=/root/.kube/config


            tar -zcf vue.tar.gz nginx.conf

            sshpass -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.gz

            sshpass -p "e5hfz^I^X98LxQtC" ssh -p 20000 Oper1@10.1.19.11  /bin/bash -x /app2/deploy-vue.sh $app_name
			
			sshpass -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.gz

            sshpass -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.coloradmin.cn/o/2045481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习基础之循环神经网络

目录 基本概念与特点 定义与工作原理 结构组成 应用领域 自然语言处理 语音识别 时间序列分析 优缺点 优点 缺点 改进方法 总结 循环神经网络在自然语言处理中的最新应用和研究进展是什么? 长短期记忆网络(LSTM)与门控循环单元…

国内首个非遗数字人智能体,AI让传统文化“活”起来

在数字化与智能化时代,文化传承正迎来全新的机遇。河南省非物质文化遗产保护和智慧化中心基于百度文心智能体平台,成功推出了国内首个非遗数字人(智能体)——「河南非遗数字人」,开启了非遗文化传播的新篇章。 河南非遗…

vue3中引入高德地图初始化,并添加、删除marker

目录 先上图 1.npm引入插件(高德地图官方推荐) 2.页面中引入使用 3.地图初始化 4.标记marker的添加和删除 先上图 1.npm引入插件(高德地图官方推荐) npm install amap/amap-jsapi-loader 2.页面中引入使用 import AMapLoad…

Therabody™明星产品TheragunⓇ筋膜枪,以科技健康助力舞台高光时刻

(2024 年 8月16日,中国上海)近日,热门音乐竞演综艺《披荆斩棘》携最新一季热血回归,节目邀请三十四位知名男艺人走上舞台,带来精彩绝伦的表演,受到广大观众的喜欢。Therabody™的明星产品Therag…

科目一满分刷题技巧(三)

十六、三超扣分★常考 口诀:高速扣分,上扣12下扣6; 普路扣分,普车3下6上;校中危记住9/6/1 口诀:校客旅,上扣12,下扣6 普车超载100%扣12,(50%基准,3下6上)…

本地连接腾讯云服务器

本地连接腾讯云服务器 1 查看服务器信息1.1 登录腾讯云官网1.2 打开开发者控制台1.3 打开已购买的服务器1.4 查看系统类型和 IP 2 本地连接服务器 1 查看服务器信息 1.1 登录腾讯云官网 官网链接 1.2 打开开发者控制台 控制台链接 1.3 打开已购买的服务器 1.4 查看系统类型…

企业图纸要怎么加密?2024年最好用的十款图纸加密软件排行榜

在数字化进程不断加速的2024年,企业图纸的安全保护愈发重要。如何有效地对企业图纸进行加密,成为了众多企业关注的焦点。为了帮助您找到最佳的解决方案,我们精心整理了2024年最好用的十款图纸加密软件排行榜。 1. 安秉图纸加密软件 安秉图纸…

AI编程工具合集

GPT-4o (OpenAI) 这里是一些知名和广泛使用的AI编程工具及其简要介绍: 1. 框架和库 (Frameworks and Libraries) - TensorFlow: 由谷歌开发的开源深度学习框架,支持多种平台,适合构建和训练复杂神经网络。 - PyTorch: 由Facebook的人工智能研…

Unity Recttransform操作

1、拉伸铺满 RectTransform rect GetComponent<RectTransform>();rect.anchorMin Vector2.zero;rect.anchorMax Vector2.one;rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, Screen.width);rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Verti…

3-3 红外人体感应模块(智能应用篇)

3-3 红外人体感应模块&#xff08;智能应用篇&#xff09; 3-3 红外人体感应模块介绍红外人体感应传感器模块&#xff08;HC-SR501原理&#xff09;电路连接示例程序效果演示人体感应传感器模块调节控制&#xff08;1&#xff09;调节感应距离&#xff08;2&#xff09;调节感应…

COMSOL碱性电解槽

记录下COMSOL案例库里面的碱性电解槽对应的文献资料和心得 文献资料参考&#xff1a; 1&#xff1a;Multiphase Fluid Dynamics and Mass Transport Modeling in a Porous Electrode toward Hydrogen Evolution Reactionhttps://pubs.acs.org/doi/10.1021/acs.iecr.2c00990# 2&…

one-shot 序列图像红外小目标分割

one-shot 序列图像红外小目标分割 IEEE TRANSACTIONS ON GEOSCIENCE AND REMOTE SENSING 代码还未开源 GitHub - D-IceIce/one-shot-IRSTS few-shot&#xff1a;利用少量标注样本进行学习 one-shot: 属于few-shot的特殊情况&#xff0c;只用一个样本进行学习 zero-shot&am…

利用Proxy302构建高效代理IP平台:从功能到架构解析

在现代互联网环境中&#xff0c;代理IP已成为企业和个人在隐私保护、网络爬虫、广告验证等场景中的关键工具。在众多代理IP平台中&#xff0c;如何选择一个高效且易用的平台&#xff1f;怎么搭建企业自己的代理IP平台&#xff0c;本文将从多个维度对进行深度分析与简易架构拆解…

你的 “可爱” 同事 justify-content 还在写 left、right 吗??

据 w3c 文档记录&#xff1a; 所以&#xff1a; justify-content 的取值只有这几种&#xff1a; flex-start | flex-end | center | space-between | space-around 千万不要向我 “可爱” 的同事一样这么写&#xff1a; 和他说了还在那里狡辩说来说去不是她 结果一…

2024.8.16(ansible)

一、回顾 1、mysql和python 1. mysql5.7 1.1 不需要执行mysql_ssl_rsa_setup 1.2 Change_master_to. 不需要get public key 2. 可以使用pymysql非交互的管理mysql 2.1 connpymysql.connect(host,user,password,database,port) 2.2 cursorconn.cursor() 2.3 cursor.execute(&qu…

激光雷达点云投影到图像平面

将激光雷达点云投影到图像平面涉及几何变换和相机模型的应用。以下是该过程的基本原理&#xff1a; 1. 坐标系转换 激光雷达生成的点云通常位于激光雷达的坐标系中&#xff0c;而图像则在相机坐标系中。为了将点云投影到图像上&#xff0c;首先需要将点云从激光雷达坐标系转换…

绝对的美剧之最:通宵追剧的最佳选择

在众多美剧中&#xff0c;《火线》堪称冷门中的神作。2002年由HBO出品&#xff0c;共五季&#xff0c;豆瓣评分9.4到9.7分&#xff0c;IMDb也高达9.3分。对于剧迷来说&#xff0c;《火线》无疑是美剧中的天花板。 不同于一般美剧&#xff0c;《火线》没有炫目的动作场面&#x…

使用MYSQL函数问题

使用mysql函数遇到的坑 最近项目需要做很多的报表统计&#xff0c;用到一些mysql的函数。今天就讲其中两个函数的问题 DATE_SUB函数 查询近七天数据 SELECT * FROM my_table WHERE DATE(create_date) >DATE_SUB(CURDATE(), INTERVAL 7 DAY) 这是在网上找的答案&#xf…

Royal累计勒索金额超36亿元,加强服务器防勒索防护迫在眉睫

近日&#xff0c;美国联邦调查局&#xff08;FBI&#xff09;和网络安全与基础设施安全局&#xff08;CISA&#xff09;联合发布的警报引起了全球网络安全界的广泛关注。曾以"皇家&#xff08;Royal&#xff09;"之名臭名昭著的勒索软件组织&#xff0c;现更名为&quo…

AI大模型开发——5.transformer模型(0基础也可懂)(2)

3. 编码处理器&#xff08;Bert&#xff09; transformer模型的编码器构成了模型处理输入数据的基础部分。编码器的设计使其能够处理复杂的序列数据&#xff0c; 捕获序列内部的细粒度依赖关系。它通过一系列的层来实现&#xff0c; 每一层都包含自注意力机制、残差连接( Resid…