0
点赞
收藏
分享

微信扫一扫

jenkins pipeline java项目发布

爱写作的小土豆 2023-05-05 阅读 112

流水线示例:

pipeline {
    agent any
    options {
        timestamps()
        disableConcurrentBuilds()
        buildDiscarder(
            logRotator(
                numToKeepStr: '20',
                daysToKeepStr: '30',
             )
        )
    }
    parameters {
        choice(
           name: "DEPLOY_FLAG",
           choices: ['deploy', 'rollback'],
           description: "发布/回滚"
        )
        string(name: 'DEPLOY_VERSION', defaultValue: 'v1.0.54', description: '请输入你需要打包的版本号')
        choice (choices: ['90003', '90004', '90005'],
                description: '请选择发布到那台服务器上', 
                name: 'Devlophost')
    }
    /*=======================================常修改变量-start=======================================*/
    environment {
        svnUrl = "svn://192.168.5.45:444/Server/Tag"
        branchName = "Server"
        projectRunDir = "项目运行目录"
        jobName = "${env.JOB_NAME}"
        serviceName = "发布java项目 "
        serviceType = "jar"
        runHosts = "192.168.167.xx,192.168.167.xx"
        rollbackVersion = ""
    }
    stages {
        stage("upload data file") {
            steps{
                script {
                    def inputFile = input message: 'Upload file', parameters: [file(name: "$workspace/data.zip")]
                }
            }
    }
    stage("checkout") {
        steps{
            echo fileExists('data.zip').toString()
        }
    }
        stage('Deploy'){
            when {
                expression { return params.DEPLOY_FLAG == 'deploy' }
            }
            stages {
                stage('Pre Env') {
                    steps {
                        echo "======================================项目名称 = ${env.JOB_NAME}"
                        echo "======================================项目 URL = ${svnUrl}"
                        echo "======================================项目分支 = ${branchName}"
                        echo "======================================当前编译版本号 = ${env.BUILD_NUMBER}"
                    }
                }
                stage('svn update') {
                    steps {
                        echo "=============================================打包前先拉取更新svn "
                        dir('/data/game/server/code/Tag') {
                            sh 'svn update'
                        }
                    }
                }
                stage('Compilepackage_game_server') {
                    steps {
                        dir('/data/game/server/ztsy_ad_internal_s90004/scripts/') {
                            script{
                                try {
                                    sh "sh sync_server.sh ${params.DEPLOY_VERSION}"
                                }
                                catch (exc) {
                                    echo  '\033[31m 打包game_server服务器失败 \033[0m'
                                    sh "exit 1"
                                }
                            }
                        }
                        
                    }
                }
                stage('Compilepackage_center_server') {
                    steps {
                        dir('/data/game/server/internal_ad_center_s90004/scripts') {
                            script{
                                try {
                                    sh "sh sync_center_server.sh ${params.DEPLOY_VERSION}"
                                }
                                catch (exc) {
                                    echo  '\033[31m 打包center_server服务器失败 \033[0m'
                                    sh "exit 1"
                                }
                            }
                        }
                        
                    }
                }
                stage('upload data表'){
                    steps {
                        dir('/data/game/server/ztsy_ad_internal_s90004'){
                            sh "rm -rf data.zip data"
                        }
                        dir('/root/.jenkins/workspace/pipeline_develop_javaproject/') {
                                script{
                                    try {
                                        sh "mv data.zip /data/game/server/ztsy_ad_internal_s90004"
                                    }
                                    catch (exc) {
                                        echo  '\033[31m zt_server服务器替换策划表失败 \033[0m'
                                        sh "exit 1"
                                    }
                                }
                        }
                        dir('/data/game/server/ztsy_ad_internal_s90004/'){
                            script{
                                    try {
                                        sh "unzip data.zip"
                                    }
                                    catch (exc) {
                                        echo  '\033[31m zt_server服务器制版失败 \033[0m'
                                        sh "exit 1"
                                    }
                                }
                        }
                    }
                }
                stage('server Deploy') {
                    steps {
                        dir('/root'){
                            sh "sh pushxyios${params.Devlophost}.sh;sh push_xyios_center_${params.Devlophost}.sh"
                        }
                    }
                }    
            }   
        }
        stage('Rollback') {
            when {
                expression { return params.DEPLOY_FLAG == 'rollback' }
            }
            steps{
                script {
                    rollbackVersion = input(
                        message: "请填写要回滚的版本",
                        parameters: [
                            string(name:'last_number')
                        ]
                    )
                    withEnv(["rollbackVersion=${rollbackVersion}"]){
                       echo "开始回滚版本"
                    }
                }
            }
        }
    }
    post {
        success {
            echo 'This task is successful!'
        }
    }
}

举报

相关推荐

0 条评论