jenkins pipeline

本文详细介绍了使用Jenkins进行CI/CD流程自动化的过程,包括代码拉取、构建、测试、报告生成及部署等阶段,展示了如何配置Maven、JUnit、JaCoCo、AllureReport等工具,以及通过SSH进行远程服务器部署。

pipeline {
agent any
tools {
maven ‘maven3.6.2’
jdk ‘jdk1.8’
}
stages {
stage (‘Initialize’) {
steps {
sh ‘’’
echo “PATH = ${PATH}”
echo “M2_HOME = ${M2_HOME}”
‘’’
}
}

    stage ('Checkout') {
        steps {
            echo 'Get Codes from git'
            git branch: 'dev', credentialsId: '9f8f3955-a3fb-46fe-a111-96e12b4da820', url: 'ssh://git@***.git' 
        }
    }
    
    stage ('Build') {
        steps {
            echo 'Building'
            sh '"${M2_HOME}/bin/mvn" -Dmaven.repo.local=/home/aj/.m2/repository -f WebService/pom.xml -Dmaven.test.failure.ignore clean package'
            }
    }
    
    stage ('Generate') {
        steps {
            junit '**/WebService/target/surefire-reports/TEST-*.xml'
            archiveArtifacts 'WebService/target/*.jar'
        }  
    }
    
    stage ('Report-JaCoCo') {
        steps {
            echo 'JaCoco'
        }
        post {
            success {
                jacoco execPattern: '**/WebService/target/**.exec'
            }
        }            
    }
    
    stage ('Report-AllureReport') {
        steps {
            echo 'AllureReport'
        }
        post {
            success {
                allure includeProperties: false, jdk: 'jdk1.8', results: [[path: 'WebService/target/allure-results']]
            }
        }
    }
    
    stage ('Deploy') {
        steps {
            echo 'Delpoy to Server 166'
        }
        post {
            success {
                sshPublisher(publishers: [sshPublisherDesc(configName: '****Server', sshCredentials: [encryptedPassphrase: '{AQAAABAAAAAQTpX80BT0G3jsKLmcfJLI8oGHoJ4/dybS3VJyebzoEEM=}', key: '', keyPath: '', username: 'root'], transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''#!/bin/bash
                    SERVER_NAME=proresume
                    JAR_WORK_PATH=/usr/local/proresume/target
                    JAR_NAME=proresume-0.0.1-SNAPSHOT
                    
                    echo "Search ProgressID-->$SERVER_NAME"
                    PID=`ps -ef | grep "$SERVER_NAME" | grep -v grep | awk \'{print $2}\'`
                    echo "Get ProgressID: $PID"
                    echo "End Progress"
                    
                    for id in $PID
                    do
                         kill -9 $id
                         echo "killed $id"
                    done
                    echo "End Progress finished"
                    
                    cd $JAR_WORK_PATH
                    
                    #source /etc/profile
                    #nohup java -jar $JAR_NAME.jar > nohup.out & sleep 1
                    BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar & sleep 1''', execTimeout: 120000, flatten: true, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'target/', remoteDirectorySDF: false, removePrefix: 'WebService/target/', sourceFiles: 'WebService/target/proresume-0.0.1-SNAPSHOT.jar', usePty: true)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值