jenkins使用脚本进行前后端分离项目自动git拉取并部署

前言

需要先安装好jenkins,配置好工作空间,然后本人是将jenkins部署到一个tomcat服务器上。
启动时执行sh脚本,脚本通过java运行war包

nohup /usr/lib/jvm/java-11/bin/java -Xms1024m -Xmx2048m -jar 你的jenkins的war目录/jenkins.war > ./logs/jenkins.log 2>&1 &
echo start jenkins

直接执行./自定义sh.sh即可

需要安装插件,这里可能包含了一些不必要的插件,但是一定全,插件列表放在最后

我们的思路是在git中拉取项目到jenkins的工作空间,然后根据脚本将项目部署。

一、后端java项目

java项目使用的是springboot技术,思路是使用springboot自带的tomcat打包成一个可执行的jar包,然后将这个jar包覆盖原来的旧jar包,最后运行脚本重启服务。

前置准备是需要修改pom文件,实现输入maven命令将java项目部署成一个完整的jar包,可以参考这篇文章 请查看第二点和第三点即可

首先登录jenkins,点击左上角的新建item
请添加图片描述
先输入任务名,选中pipeline,然后点击确定
请添加图片描述
点击确定后接着输入描述
请添加图片描述
输入完描述后,先不要保存,此时是重头戏,需要复制部署用的脚本,滚动条拉到最下面,将流水线里复制以下脚本
请添加图片描述

pipeline {
    agent any
    environment { 
        def model = "ipas-server"
        def DATE = sh(script: 'date +%Y%m%d_%H%M%S', returnStdout:true)
        def JAR_NAME= "ipas.jar"	// 打出来的jar包名字
        def BASEPATH = "/opt/AppData"	
        def JOB_NAME = "ipas"
        // jenkins的工作空间,项目从git拉取后会放在此处
        def workspace='/opt/jenkins-server/workspace/ipas-new'
        def project='ipas'
    }

    stages {
        stage('拉取代码') {
            steps {
                // 从git仓库中拉取代码
                // get branch是git分支,
                // credentialsId可查看下面的Jenkins 添加配置Git账号密码凭据
                // url是git的项目地址
                git branch: 'dev-cll2', credentialsId: '你的credentialsId', url: 'http://你的git地址/ipas-new.git'
                    
            }
        }
        stage('打包') {
            steps {
               // 此处使用运行项目根目录下的pom-test.xml的方式
               sh "cd $workspace && mvn clean package -f pom-test.xml"
            }
        }
        stage('移动项目') {
            steps {
                // 将jenkins工作空间中打包的jar包移动到要部署的文件夹中
                sh '''mv /opt/jenkins-server/workspace/ipas-new/servers/servers-admin/target/servers-admin.jar /opt/AppData/ipas-new-server/admin/servers-ipas-admin.jar'''
                
            }
        } 
        
        stage('运行') {
            steps {
            	// 运行关闭脚本,然后运行启动脚本重启
                sh '''cd /opt/AppData/ipas-new-server/admin
                    ./shutdown.sh servers-ipas-admin
                    ./start.sh servers-ipas-admin'''
            }
        }
        
    }
}

最后一步的shutdown.sh和start.sh是根据以上前置准备进行配置的
然后点击保存,回到首页,找到右边的开始按钮,点击
请添加图片描述
如果运行成功,左边会显示绿色勾勾,否则,会显示红色的叉叉。
这里假设我们的项目部署失败了,我们需要查看日志
点击项目名
请添加图片描述
鼠标移动到报错的地方,然后点击logs
请添加图片描述
可以看到此处git代码拉取没有成功,是由于验证没有通过
请添加图片描述
此处看到是因为这个credentialsId没有验证通过,这玩意是用来对应你的git账号和密码的。设置可以查看这篇文章 Jenkins 添加配置Git账号密码凭据
配置成功后复制此处的即可
请添加图片描述

设置完后重新修改脚本中拉取部分的credentialsId,重新按启动按钮即可

前端项目部署

同样重复上述步骤,只不过脚本变了而已。
部署思路是从git中拉取vue的项目,然后运行npm的打包命令,将项目打包到jenkins工作空间下之后再复制替换到要部署的文件夹里
此处由于项目中需要安装npm,有两种思路,一种就是每次都安装,此时新建item的时候需要以下这段设置
在这里插入图片描述

脚本如下

pipeline {
    agent any
    environment { 
        def DATE = sh(script: 'date +%Y%m%d_%H%M%S', returnStdout:true)
        // jenkins的工作空间,项目从git拉取后会放在此处
        def workspace='/opt/jenkins-server/workspace/ipas-bms'
    }

    stages {
        stage('拉取代码') {
            steps {
                // 从git仓库中拉取代码
                // get branch是git分支,
                // credentialsId可查看下面的Jenkins 添加配置Git账号密码凭据
                // url是git的项目地址
                git branch: 'release-test', credentialsId: '你的git账号密码生成的credentialsId', url: 'http://项目的git地址/IPAS.git'
                    
            }
        }
		
		stage('打包后台') {
		    steps {
		        script {
                    if(npminstall=="false"){
                    	// 运行npm打包前端项目命令
                        sh "cd $workspace/ipas-clients && npm run build"
                    }
                    else{
                        sh "cd $workspace/ipas-clients && npm install && npm run build"
                    }
		        }
		    }
        }
		
		stage('移动项目') {
            steps {
            	// 将工作空间中打包的vue项目移动到要部署的文件夹里
               sh '''\\cp -rf /opt/jenkins-server/workspace/ipas-bms/ipas-clients/dist/* /opt/AppData/ipas-client'''
            }
        }
           
    }
}

第二种就是仅仅执行一次npm install,不会每次部署都执行。
此时只需要进入jenkins工作空间里执行npm install即可
然后把打包脚本修改下,修改成不需要npm install。只需打包

// 修改后,只需要执行npm run build打包即可不再执行安装
// if(npminstall=="false"){
 	// 运行npm打包前端项目命令
     sh "cd $workspace/ipas-clients && npm run build"
 // }
 // else{
    // sh "cd $workspace/ipas-clients && npm install && npm run build"
 //}

完成后点击启动按钮即可

查看日志

有时候会有一些莫名奇妙的原因没有报错,但实际上是有错的,此时需要看日志
请添加图片描述
点击红框处,两个都可以,然后点击最左边的console output,即可看到日志
请添加图片描述

插件列表

请添加图片描述
请添加图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值