个人cicd 编写模板编译打包部署!

pipeline {
    agent none
    options { timestamps () }
    stages {
        stage('Task Initialization') {
            agent { label "10.10.0.245" }
            steps {
            script {
              wrap([$class: 'BuildUser']) {
                buildName "#${BUILD_NUMBER}_${BUILD_USER}"
              }
            }
            cleanWs()
            }
        }
        stage('Code Check out') {
            agent { label "10.10.0.245" }
            steps {
                checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: false, credentialsId: '0330f329-54cb-4ab5-9dd9-e327b54e5d45', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'http://svn.hirain.net:8081/svn1/Hirain_IT_SRM/webRoot/branches/${svn_branch_releases}']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
            }
        }
        stage('Code Scan') {
            agent { label "master" }
            steps {
                withSonarQubeEnv('globalsonarserver') {
                sh'''
                    echo "<---------------------start-codescan--------------------->"
                    
                    echo "<---------------------finish-codescan--------------------->"
                '''
                }
            }
        }
        stage('Deploy_release') {
            agent { label "10.10.0.245" }
            steps {
                sh'''
                    #! /bin/bash
                    prod_dir=/data/webapp/webRoot
                    prod_relay=/data/webapp/prod_relay
                    backup_dir=/data/backup/local_srm_prod/local_`date +%Y%m%d%H%M%S`
                    check_return() {
                        if [ $? != "0" ]
                          then
                            echo $1
                            exit 255
                        fi
                    }
                    if [ ! -d ${prod_relay} ];then
                      mkdir -p ${prod_relay}/WEB-INF
                    fi
                    if [ ! -d ${backup_dir} ];then
                      mkdir -p ${backup_dir}
                    fi
                    #backup local prod directory
                    cp -a ${prod_relay}/modules ${prod_relay}/WEB-INF/classes ${backup_dir}/
                    check_return "TEST:backup prod-server's local code failed! /(ㄒoㄒ)/~~"
                    #retrive the svn trunk's code and update the prod-server's relay directory.
                    rsync -ahv --delete ${WORKSPACE}/modules  ${prod_relay}/
                    check_return "TEST:synchronize svn code---modules to prod-server's relay directory failed! /(ㄒoㄒ)/~~"
                    rsync -ahv --delete ${WORKSPACE}/WEB-INF/classes  ${prod_relay}/WEB-INF/
                    check_return "TEST: synchronize svn code---classes to prod-server's relay directory failed! /(ㄒoㄒ)/~~"
                    #delete the ".svn" directory
                    find ${prod_relay} -type d -name ".svn" | xargs rm -rf
                    #change the ownership and owner group
                    chown -R srm:web ${prod_relay}
                    check_return "TEST: change the ownership and owner group of ${prod_relay} failed! /(ㄒoㄒ)/~~"
                    #rsync svn code to prod_dir
                    if [ -d $WORKSPACE/WEB-INF/classes ]
                      then
                        rsync -aHv $WORKSPACE/WEB-INF/classes ${prod_dir}/WEB-INF/
                        check_return "rsync WEB-INF/classes to prod server failed /(ㄒoã/~~"
                    fi
                    
                    if [ -d $WORKSPACE/modules ]
                      then
                        rsync -aHv $WORKSPACE/modules ${prod_dir}/
                        check_return "rsync modules to prod server failed /(ㄒoã/~~"
                    fi
                    #remove all subdirectories named as ".svn"
                    find ${prod_dir} -type d -name ".svn" | xargs rm -rf
                    #change the owner and group of prod_dir
                    chown -R srm:web ${prod_dir}
                '''
            }
            }
        }
    post{
        failure {
              node("master") {
                hirainmessage(
                    messageBody: '''构建通知:$JOB_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
                    构建触发者 ${BUILD_USER}
                    请检查您的任务''', 
                    messageTitle: '构建通知:$JOB_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!',
                    receivers: "luo.chen,xiaoliang.wang",
                    useCard: true,
                    useWeChat: true
                    )
              }
        }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值