jenkins pipeline 简单编写

pipeline {

    agent any

    parameters {

        string defaultValue: 'master', description: '分支', name: 'branch_name'

        choice choices: ["user","wechat"], description: '请选中服务', name: 'service_name'

        booleanParam defaultValue: false, description: '发布后端', name: 'issue_springboot'

        booleanParam defaultValue: false, description: '发布定时器', name: 'issue_scheduler'

        booleanParam defaultValue: false, description: '发布前端admin', name: 'issue_vue_admin'

        booleanParam defaultValue: false, description: '发布前端mobile', name: 'issue_vue_mobile'

    }

    environment {        

        rootDirectory = "/home/cloud"        

    }

   

    stages {

        stage('Confirm Stage') {

            steps {

                script {

                        // 创建确认提示框

                        def userInput = input(

                            message: "即将操作服务:[$service_name],分支:[$branch_name] 是否继续执行?",

                            ok: '继续'

                        )

                }

            }

        }

        stage('拉取代码') {

            steps {

                git branch: "$branch_name", credentialsId: 'b7eaf7c71-99e0-42a4-83e6-5d66cc32b3e4', url: 'http://wtx/root/wtx.git'

                echo '拉取成功'

            }

        }

        stage('构建上传service') {

            when {

                //判断表达式是否为true,如果为true则执行

                expression { params.issue_springboot }

            }

            steps {

                 script {

                    newPath="$rootDirectory/$service_name/service"

                    echo '开始构建Service'

                    bat "mvn --version"

                    bat "mvn clean package -DskipTests -pl wtx-service/wtx-$service_name-service -am"

                    echo '构建Service完成'

                    //verbose=true 显示执行详细信息

                    sshPublisher(publishers: [sshPublisherDesc(configName: '服务器地址', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand:"""

                    cd $newPath

                    ./start.sh

                    """, execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: "$service_name/service", remoteDirectorySDF: false, removePrefix: "wtx-service\\wtx-$service_name-service\\target", sourceFiles: "wtx-service\\wtx-$service_name-service\\target\\wtx-$service_name-service-0.0.1-SNAPSHOT.jar")], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])

                    echo '启动Service完成'

                 }

            }

        }

        stage('构建上传scheduler') {

            when {

                //判断表达式是否为true,如果为true则执行

                expression { params.issue_scheduler }

            }

            steps {

                script {

                    newPath="$rootDirectory/$service_name/scheduler"

                    echo '开始构建scheduler'

                    bat "mvn --version"

                    bat "mvn clean package -DskipTests -pl wtx-scheduler/wtx-$service_name-scheduler -am"    

                    echo 'scheduler构建完成'

                    sshPublisher(publishers: [sshPublisherDesc(configName: '服务器地址', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: """

                    cd $newPath

                    ./start.sh

                    """, execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: "$service_name/scheduler", remoteDirectorySDF: false, removePrefix: "wtx-scheduler\\wtx-$service_name-scheduler\\target", sourceFiles: "wtx-scheduler\\wtx-$service_name-scheduler\\target\\wtx-$service_name-scheduler-0.0.1-SNAPSHOT.jar")], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])

                    echo '启动scheduler完成'

                }

            }

        }

        stage('构建上传vue_admin') {

            when {

                //判断表达式是否为true,如果为true则执行

                expression { params.issue_vue_admin }

            }

            steps {

                script {

                    echo '开始构建vue_admin'

                    bat "npm --version"

                    bat "cd wtx-web/wtx-$service_name-admin && npm install  && npm run uat"

                    echo 'vue_admin构建完成'

                    sshPublisher(publishers: [sshPublisherDesc(configName: '服务器地址', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: "$service_name/web/admin", remoteDirectorySDF: false, removePrefix: "wtx-web\\wtx-$service_name-admin", sourceFiles: "wtx-web\\wtx-$service_name-admin\\dist\\**")], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])

                    echo 'vue_admin推送完成'

                }

            }

        }

        stage('构建上传vue_mobile') {

            when {

                //判断表达式是否为true,如果为true则执行

                expression { params.issue_vue_mobile }

            }

            steps {

                script {

                    echo '开始构建vue_mobile'

                    bat "npm --version"

                    bat "cd wtx-web/wtx-$service_name-mobile && npm install  && npm run uat"

                    echo 'vue_mobile构建完成'

                    sshPublisher(publishers: [sshPublisherDesc(configName: '服务器地址', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: "$service_name/web/mobile", remoteDirectorySDF: false, removePrefix: "wtx-web\\wtx-$service_name-mobile", sourceFiles: "wtx-web\\wtx-$service_name-mobile\\dist\\**")], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])

                    echo 'vue_mobile推送完成'

                }

            }

        }              

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值