利用jenkins自动构建前端项目并部署到远程服务器上运行

        #!/bin/bash
        
        echo "当前构建的任务名称:$JOB_NAME"
        
        #目标服务器B,即要运行jar包的服务器
        serverB="远程服务器B的ip"
        
        #目标服务器B存放dist包路径
        Bpath=/home/mogu_blog/${JOB_NAME}
        
        echo "--------------进入前端工作目录/home/jenkins/workspace/mogu/${JOB_NAME}/---------------------"
        cd /home/jenkins/workspace/mogu/${JOB_NAME}/
        
        echo "-------------开始构建项目----------------"
        
        # 指定node-sass的国内镜像源
        npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass
        
        # 使用淘宝镜像源进行依赖安装,解决国内下载缓慢的问题(出现警告可以忽略)
        npm install --registry=https://registry.npm.taobao.org
        
        # 打包
        npm run build
        
        #压缩
        tar -cvzf dist.tar.gz ./dist
        
        #传输jenkins构建好的jar包和Dockerfile到目标服务器B上
        for host in $serverB
        do
        	echo "目标服务器:*********$host*********"
        	echo "目标服务器存放dist包位置:**************$Bpath**************"
        	ssh root@$host 
        	scp -r /home/jenkins/workspace/mogu/${JOB_NAME}/dist.tar.gz root@${host}:${Bpath}  
        	scp -r /home/jenkins/workspace/mogu/${JOB_NAME}/Jenkinsfile root@${host}:${Bpath}
        	echo "文件传输完成!!!!"
        	echo "检查目标服务器$host->$Bpath路径下是否存在dist包"
        done
  • 构建后需要远程服务器执行相应的脚本发布项目到nginx中image-20210411180311838

  • 点击保存,子项目构建任务就完成了。只要在git上有新的代码提交,父项目会触发webhook自动构建,等待父项目构建后,需手动点击子任务,这样就可以远程部署服务到另一台服务器并运行了。

    jenkinsfile脚本内容如下:
    
	#!/bin/sh
        tar -zxvf dist.tar.gz
        systemctl restart nginx

Q.E.D.


一个热爱生活的95后精神小伙