def sync_source(branch_name) {
    sh '''
        hostname
        env
        echo ''' + branch_name + '''
    '''
    sh '''
        cd ${TDINTERNAL_ROOT_DIR}
        git reset --hard
        git fetch || git fetch
        git checkout ''' + branch_name + ''' -f
        git branch
        git pull || git pull
        git log | head -n 20
        cd ${TDENGINE_ROOT_DIR}
        git reset --hard
        git fetch || git fetch
        git checkout ''' + branch_name + ''' -f
        git branch
        git pull || git pull
        git log | head -n 20
        git submodule update --init --recursive
    '''
    return 1
}
def run_test() {
    sh '''
        cd ${TDENGINE_ROOT_DIR}/packaging
        
    '''
    sh '''
        export LD_LIBRARY_PATH=${TDINTERNAL_ROOT_DIR}/debug/build/lib
        ./fulltest.sh
    '''
    sh '''
        cd ${TDENGINE_ROOT_DIR}/tests
        ./test-all.sh b1fq
    '''
}
def build_run() {
    sync_source("${BRANCH_NAME}")
}
pipeline {
    agent none
    parameters {
        string (
            name:'version', 
            defaultValue:'3.0.0.1', 
            description: 'release version number,eg: 3.0.0.1 or 3.0.0.'
        )
        string (
            name:'baseVersion', 
            defaultValue:'3.0.0.1', 
            description: 'This number of baseVerison is generally not modified.Now it is 3.0.0.1'
        )
    }
    environment{
        WORK_DIR = '/var/lib/jenkins/workspace'
        TDINTERNAL_ROOT_DIR = '/var/lib/jenkins/workspace/TDinternal'
        TDENGINE_ROOT_DIR = '/var/lib/jenkins/workspace/TDinternal/community'
        BRANCH_NAME = '3.0'

        TD_SERVER_TAR = "TDengine-server-${version}-Linux-x64.tar.gz"
        BASE_TD_SERVER_TAR = "TDengine-server-${baseVersion}-arm64-x64.tar.gz"

        TD_SERVER_ARM_TAR = "TDengine-server-${version}-Linux-arm64.tar.gz"
        BASE_TD_SERVER_ARM_TAR = "TDengine-server-${baseVersion}-Linux-arm64.tar.gz"

        TD_SERVER_LITE_TAR = "TDengine-server-${version}-Linux-x64-Lite.tar.gz"
        BASE_TD_SERVER_LITE_TAR = "TDengine-server-${baseVersion}-Linux-x64-Lite.tar.gz"

        TD_CLIENT_TAR = "TDengine-client-${version}-Linux-x64.tar.gz"
        BASE_TD_CLIENT_TAR = "TDengine-client-${baseVersion}-arm64-x64.tar.gz"

        TD_CLIENT_ARM_TAR = "TDengine-client-${version}-Linux-arm64.tar.gz"
        BASE_TD_CLIENT_ARM_TAR = "TDengine-client-${baseVersion}-Linux-arm64.tar.gz"

        TD_CLIENT_LITE_TAR = "TDengine-client-${version}-Linux-x64-Lite.tar.gz"
        BASE_TD_CLIENT_LITE_TAR = "TDengine-client-${baseVersion}-Linux-x64-Lite.tar.gz"

        TD_SERVER_RPM = "TDengine-server-${version}-Linux-x64.rpm"
        
        TD_SERVER_DEB = "TDengine-server-${version}-Linux-x64.deb"

        TD_SERVER_EXE = "TDengine-server-${version}-Windows-x64.exe"
        
        TD_CLIENT_EXE = "TDengine-client-${version}-Windows-x64.exe"


    }
    stages {
        stage ('RUN') {
        stage('get check package scritps'){
            agent{label 'ubuntu18'}
            steps {
                catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
                    script{
                        sync_source("${BRANCH_NAME}")
                    }
                    
                }
            }
        }
            parallel {
                stage('ubuntu16') {
                    agent{label " ubuntu16 "}
                    steps {
                        timeout(time: 3, unit: 'MINUTES'){
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_TAR} ${version} ${BASE_TD_SERVER_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            rmtaos
                            '''
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_LITE_TAR} ${version} ${BASE_TD_SERVER_LITE_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            '''
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_DEB} ${version} ${BASE_TD_SERVER_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            '''
                        }
                    }
                }
                stage('ubuntu18') {
                    agent{label " ubuntu18 "}
                    steps {
                        timeout(time: 3, unit: 'MINUTES'){
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_TAR} ${version} ${BASE_TD_SERVER_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            rmtaos
                            '''
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_LITE_TAR} ${version} ${BASE_TD_SERVER_LITE_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            '''
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_DEB} ${version} ${BASE_TD_SERVER_DEB} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            '''
                        }
                    }
                }
                stage('centos7') {
                    agent{label " centos7_9 "}
                    steps {
                        timeout(time: 240, unit: 'MINUTES'){
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_TAR} ${version} ${BASE_TD_SERVER_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            rmtaos
                            '''
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_LITE_TAR} ${version} ${BASE_TD_SERVER_LITE_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            '''
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_RPM} ${version} ${BASE_TD_SERVER_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            '''
                        }
                    }
                }
                stage('centos8') {
                    agent{label " centos8_3 "}
                    steps {
                        timeout(time: 240, unit: 'MINUTES'){
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_TAR} ${version} ${BASE_TD_SERVER_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            rmtaos
                            '''
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_LITE_TAR} ${version} ${BASE_TD_SERVER_LITE_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            '''
                            sh '''
                            cd ${TDENGINE_ROOT_DIR}/packaging
                            bash testpackage.sh ${TD_SERVER_RPM} ${version} ${BASE_TD_SERVER_TAR} ${baseVersion} server
                            python3 checkPackageRuning.py  
                            '''                     
                        }
                    }
                }
            }
        }
    }
}