示例#1
0
文件: pack.py 项目: vzer/vaer_package
def deployServiceWork(username,passwd,localServicePath,remoteTarPath,version,host,projectName,git_url):
    failureTimes=0
    try:
        logCollector('#'*30+'部署任务开始'+'#'*30)
        #删除遗留的项目文件夹,并判断删除结果
        logCollector('#'*20+'step 1:删除上次遗留的'+projectName+' 项目'+'#'*20)
        rmDirCmd='rm -rf %s/%s' %(localServicePath,projectName)
        (recode,result)=shellCmd(rmDirCmd)
        logCollector(result)
        if recode==0:
            logCollector('.'*20+'SUCCESS!!:DELETE THE OLD '+'.'*20)
            logCollector('#'*20+'step 2:git 克隆'+projectName+'项目包到本地'+'#'*20)
            #从gitlab把项目的工程打包下来,并判断打包是否成功
            gitCloneCmd='git clone -b %s http://readonly:readonly@%s %s/%s'%(version,git_url,localServicePath,projectName)
            (recode,result)=shellCmd(gitCloneCmd)
            logCollector(result)
            if recode==0:
                logCollector('.'*20+'SUCCESS!!: GIT CLONE THE MODELS'+'.'*20)
                #判断pom.xml文件 发布版本是否存在snatshot release 版本字样
                versionTag=resoveXml("%s/%s/%s-business/pom.xml"%(localServicePath,projectName,projectName))
                if not ("SNAPSHOT" in versionTag.upper() or "RELEASE" in versionTag.upper()):
                    if version==versionTag:
                        logCollector('#'*20+'setp 3:maven '+projectName+' contract 组件'+'#'*20)
                        #进入项目的contract目录下先清理后deploy,并判断是否成功
                        inFounfationContractCmd='%s/%s/%s-contract'%(localServicePath,projectName,projectName)
                        os.chdir(inFounfationContractCmd)
                        mvnCleanCmd='mvn clean deploy'
                        (recode,result)=shellCmd(mvnCleanCmd)
                        logCollector(result)
                        if recode==0:
                            logCollector('.'*20+'SUCCESS!!:MVN CLEAN DEPLOY'+'.'*20)
                        else:
                            logCollector('.'*20+'FAILURE!!:MVN CLEAN DEPLOY'+'.'*20)
                            failureTimes=failureTimes+1
                        #进入项目的business目录下,打包项目,并判断是否成功
                        logCollector('#'*20+'setp 4:maven '+projectName+' business 组件'+'#'*20)
                        inFounfationBusinessCmd='../../../%s/%s/%s-business'%(localServicePath,projectName,projectName)
                        os.chdir(inFounfationBusinessCmd)
                        mvnInstallCmd='mvn clean install -Dmaven.test.skip=true -U'
                        (recode,result)=shellCmd(mvnInstallCmd)
                        logCollector(result)
                        if recode==0:
                            logCollector('.'*20+'SUCCESS!!:MVN CLEAN INSTALL'+'.'*20)
                            logCollector('#'*20+'step 5:上传'+projectName+'部署包到远端服务器'+'#'*20)
                            localPath='target/'
                            tarFilename='%s-business-%s-assembly.tar.gz' %(projectName,version)
                            shellStatus=putFileWork(accout=username,passwd=passwd,host=host,localPath=localPath,remotePath=remoteTarPath,filename=tarFilename)
                            if shellStatus:
                                logCollector('.'*20+'SUCCESS!!:UPLOAD THE TAR PACKAGE'+'.'*20)
                                return (0,failureTimes)
                            else:
                                logCollector('.'*20+'FAILURE!!:UPLOAD THE TAR PACKAGE'+'.'*20)
                                failureTimes=failureTimes+1
                                return (1,failureTimes)
                        else:
                            logCollector('.'*20+'FAILURE!!:MVN CLEAN INSTALL'+'.'*20)
                            failureTimes=failureTimes+1
                            return (1,failureTimes)
                    else:
                        logCollector('.'*20+'FAILURE!!:THE DEPLOY VERSION:%s != THE POM.xml VERSION:%s '%(version,versionTag)+'.'*20)
                        failureTimes=failureTimes+1
                        return (1,failureTimes)
                else:
                    logCollector('.'*20+'FAILURE!!:PLEASE CHECK THE POM.xml FILE(have the %s) '%versionTag+'.'*20)
                    failureTimes=failureTimes+1
                    return (1,failureTimes)
            else:
                logCollector('.'*20+'FAILURE!!: GIT CLONE THE MODELS'+'.'*20)
                failureTimes=failureTimes+1
                return (1,failureTimes)
        else:
            logCollector('.'*20+'FAILURE!!:DELETE THE OLD '+'.'*20)
            failureTimes=failureTimes+1
            return (1,failureTimes)
    except subprocess.CalledProcessError,msg:
        logCollector(str(msg))
        logCollector('#'*20+'部署任务出现异常'+'#'*20)
        failureTimes=failureTimes+1
        return (1,failureTimes)
示例#2
0
文件: pack.py 项目: vzer/vaer_package
def deployWebWork(username,passwd,localServicePath,remoteTarPath,version,host,projectName,git_url):
    failureTimes=0
    try:
        logCollector('#'*30+'部署任务开始'+'#'*30)
        #删除遗留的项目文件夹,并判断删除结果
        logCollector('#'*20+'step 1:删除上次遗留的'+projectName+' 项目'+'#'*20)
        rmDirCmd='rm -rf %s/%s' %(localServicePath,projectName)
        (recode,result)=shellCmd(rmDirCmd)
        logCollector(result)
        #如果删除ok,开始git 工程包到本地
        if recode==0:
            logCollector('.'*20+'SUCCESS!!:DELETE THE OLD '+'.'*20)
            logCollector('#'*20+'step 2:git 克隆'+projectName+'项目包到本地'+'#'*20)
            gitCloneCmd='git clone -b %s http://readonly:readonly@%s %s/%s'%(version,git_url,localServicePath,projectName)            #print gitCloneCmd
            (recode,result)=shellCmd(gitCloneCmd)
            logCollector(result)
            #如果git ok,进入到 项目目录,判断pom文件时候符合要求,
            if recode==0:
                logCollector('.'*20+'SUCCESS!!: GIT CLONE THE MODELS'+'.'*20)
                logCollector('#'*20+'setp 3:maven '+projectName+'组件'+'#'*20)
                inFounfationBusinessCmd='%s/%s/'%(localServicePath,projectName)
                os.chdir(inFounfationBusinessCmd)
                versionTag=resoveXml("pom.xml")
                #如果pom文件符合要求,开始maven
                if not ("SNAPSHOT" in versionTag.upper() or "RELEASE" in versionTag.upper()):
                    if versionTag==version:
                        mvnInstallCmd='mvn clean install -Dmaven.test.skip=true -U'
                        (recode,result)=shellCmd(mvnInstallCmd)
                        logCollector(result)
                        #如果maven成功,开始上传到远程服务器
                        if recode==0:
                            logCollector('.'*20+'SUCCESS!!:MVN CLEAN INSTALL'+'.'*20)
                            logCollector('#'*20+'step 5:上传'+projectName+'部署包到远端服务器'+'#'*20)
                            localPath='target/'
                            tarFilename='%s-%s.war'%(projectName,version)
                            shellStatus=putFileWork(accout=username,passwd=passwd,host=host,localPath=localPath,remotePath=remoteTarPath,filename=tarFilename)
                            if shellStatus:
                                logCollector('.'*20+'SUCCESS!!:UPLOAD THE TAR PACKAGE'+'.'*20)
                                return (0,failureTimes)
                            else:
                                logCollector('.'*20+'FAILURE!!:UPLOAD THE TAR PACKAGE'+'.'*20)
                                failureTimes=failureTimes+1
                                return (1,failureTimes)
                        else:
                            logCollector('.'*20+'FAILURE!!:MVN CLEAN INSTALL'+'.'*20)
                            failureTimes=failureTimes+1
                            return (1,failureTimes)
                    else:
                        logCollector('.'*20+'FAILURE!!:THE DEPLOY VERSION:%s != THE POM.xml VERSION:%s '%(version,versionTag)+'.'*20)
                        failureTimes=failureTimes+1
                        return (1,failureTimes)
                else:
                    logCollector('.'*20+'FAILURE!!:PLEASE CHECK THE POM.xml FILE(have the %s) '%versionTag+'.'*20)
                    failureTimes=failureTimes+1
                    return (1,failureTimes)
            else:
                logCollector('.'*20+'FAILURE!!: GIT CLONE THE MODELS'+'.'*20)
                failureTimes=failureTimes+1
                return (1,failureTimes)
        else:
            logCollector('.'*20+'FAILURE!!:DELETE THE OLD '+'.'*20)
            failureTimes=failureTimes+1
            return (1,failureTimes)
    except subprocess.CalledProcessError,msg:
        logCollector(str(msg))
        logCollector('#'*20+'部署任务出现异常'+'#'*20)
        failureTimes=failureTimes+1
        return (1,failureTimes)