SpringBoot项目 使用Jenkins进行自动化部署 (gitLab管理项目)_

Posted zhucww

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot项目 使用Jenkins进行自动化部署 (gitLab管理项目)_相关的知识,希望对你有一定的参考价值。

1.部署服务器创建好对应文件夹和启动脚本

  • 创建文件夹
mkdir /wdcloud/app/rps/rps-module-category
  • 创建启动脚本
cd  /wdcloud/app/rps/rps-module-category
vim rps-module-category.sh
#!/bin/bash
APP_HOME=/wdcloud/app/rps/rps-module-category
APP_JAR=rps-module-category-*.jar
APP_PIDS=$(ps ax | grep java | grep $APP_HOME | grep -v grep | awk '{print $1}')

function start(){
    if [ -z "$APP_PIDS" ]; then
        echo "start project..."
        exec java -jar $APP_HOME/$APP_JAR  >/dev/null 2>&1 &
        echo "start project end..."
    else
        echo "warning: the spring boot server is started!!!====="$APP_HOME
        exit 1
    fi
}

function stop(){
    if [ -z "$APP_PIDS" ]; then
        echo "No spring boot server to stop"
    else
        echo "stop project..."
        kill -s TERM $APP_PIDS
        echo "stop project end..."
    fi
}


function restart(){
    stop
    sleep 3
    APP_PIDS=$(ps ax | grep java | grep $APP_HOME | grep -v grep | awk '{print $1}')
    start
}

case "$1" in
    start)  
    start
    ;;
    stop)
    stop
    ;;
    restart)
    restart
    ;;
    *)  
    printf 'Usage: %s {start|stop|restart}\\n' "$prog"
    ;;
esac
exit 1

2.Jenkins 创建任务

输入任务名称 -> 选择流水线
技术图片

ok-> 选择丢弃旧的构建
技术图片

Pipeline - Script 输入对应脚本

node('master') {
    def mvnHome = tool 'maven11-free'
    def gitUrl = "http://gitlab.wdcloud.cc:10080/utility/rps/rps.git"
    def appName = "rps-module-category"
    def appPath = "/wdcloud/app/rps/rps-module-category"
    def nodeIp = "192.168.9.14"
    def profile = "test"
    
    stage('rmdir') {
        sh "rm -rf ./*"
    }
    stage('git') {
        git branch: 'master', credentialsId: 'd390694c-d99b-4eae-b7d3-f7b75095d29e', url: "${gitUrl}"
    }

    stage('Package') {
        sh "'${mvnHome}/bin/mvn' -Dmaven.test.failure.ignore -Dmaven.test.skip=true clean package"
    }
    
    stage('Deployment'){

        sh """
            ssh [email protected]${nodeIp} "${appPath}/${appName}.sh stop || echo not running"
            ssh [email protected]${nodeIp} "rm -rf ${appPath}/${appName}-*.jar"
            
            scp -o StrictHostKeyChecking=no -r rps-modules/${appName}/target/${appName}-*.jar [email protected]${nodeIp}:${appPath}/
            
            ssh [email protected]${nodeIp} "${appPath}/${appName}.sh start || echo not running"
        """
    }
}

技术图片

点击保存 配置完成

3.Jenkins 构建项目 即可进行自动化部署

技术图片

以上是关于SpringBoot项目 使用Jenkins进行自动化部署 (gitLab管理项目)_的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins和Gitee自动化部署SpringBoot项目

linux服务器中Jenkins集成gitGradle持续构建Springboot项目

docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)

Jenkins+Docker+Gitee+SpringBoot自动化部署

Jenkins+Docker+Gitee+SpringBoot自动化部署

jenkins持续集成springboot