Esempio n. 1
0
def mainFunc(delay):
    global openUnitySucc
    global openUnityFail
    global failEnd
    global allow
    compilerlog.set_prefix_path(localconfig.GIT_PROJECT_CD_ROOT + "/../")

    compilerlog.clear_open_log()
    open_unity()
    openUnitySucc = True
    # 有打开的报错
    if compilerlog.check_open_log():
        failEnd = True
        localutil.log("open error")
        return

    prepareFunc()

    compilerlog.clear_compiler_log()
    unity_buildab()
    unity_compile()
    if compilerlog.check_compiler_log():
        failEnd = True
        localutil.log("compiler error")
        return
    allow = True
Esempio n. 2
0
def send_mail(succ=True):
    global BUILD_STATUS
    mail_content = ""
    if succ:
        BUILD_STATUS = "成功"
        mail_content = construct_success_html()
    else:
        BUILD_STATUS = "失败"
        mail_content = construct_fail_html()

    # 第三方 SMTP 服务
    message = MIMEText(mail_content, 'html', 'utf-8')
    message['From'] = Header("PC打包机", 'utf-8')
    message['To'] = Header("测试", 'utf-8')

    subject = '【构建通知】 PC版本 Build #' + BUILD_ID + ' ' + BUILD_STATUS
    message['Subject'] = Header(subject, 'utf-8')
    try:
        smtpObj = smtplib.SMTP_SSL(mail_host, mail_port)
        smtpObj.login(mail_user, mail_pass)
        smtpObj.sendmail(sender, receivers, message.as_string())
        smtpObj.quit()
        localutil.log("邮件发送成功")
    except smtplib.SMTPException:
        localutil.log("Error: 无法发送邮件")
Esempio n. 3
0
def main():
    localutil.log("Start git update")
    if not os.path.exists(localconfig.GIT_WWISE_CD_ROOT):
        os.makedirs(localconfig.GIT_WWISE_CD_ROOT)
    os.chdir(localconfig.GIT_WWISE_CD_ROOT)
    localutil.git_config()
    localutil.git_update(GIT_URL, GIT_BRANCH)
    localutil.log("End git update")
Esempio n. 4
0
def copy_files():
    # 先删除原有数据目录
    localutil.log("开始删除原有trunk数据")
    if os.path.exists(DEST_PATH):
        shutil.rmtree(DEST_PATH)
    # 再把新的数据拷贝过去
    localutil.log("开始拷贝数据到trunk")
    shutil.copytree(SRC_PATH, DEST_PATH)
Esempio n. 5
0
def get_svn_revision():
    os.chdir(CD_ROOT)
    infos = collect_cmd_output(SVN_INFO)
    localutil.log(infos)
    split_datas = infos.split('\n')
    for item in split_datas:
        if item.startswith('Revision'):
            return item[10:len(item)]
def main():
    localutil.log("start git update")
    os.chdir(CD_ROOT)
    localutil.git_config()
    git_infos_before = localutil.git_log()
    localutil.git_update(GIT_URL, GIT_BRANCH)
    git_infos_after = localutil.git_log()
    localutil.git_diff_log(git_infos_before, git_infos_after,
                           CD_GIT_LOG_PRINT_TXT)
    localutil.log("end git update")
Esempio n. 7
0
def generate_cmd_files(time_version):
    localutil.log("开始生成bat文件")
    f = open(BAT_FILE_NAME, 'w')
    write_content = BAT_CONTENT % time_version
    f.write(write_content)
    f.close()
    localutil.log("开始生成sh文件")
    f = open(SH_FILE_NAME, 'w')
    write_content = SH_CONTENT % time_version
    f.write(write_content)
    f.close()
Esempio n. 8
0
def main():
    localutil.log("开始压缩复制文件")
    localutil.execute("C:/Windows/Rar.exe a -ag" + localconfig.BUILD_TIMESTAMP + " -ep1 -df -m1 "
                      + localconfig.SRC_EXE_PATH
                      + localconfig.GIT_PROJECT_COMPRESS_NAME
                      + " "
                      + localconfig.GIT_PROJECT_PACK_PC_CD_ROOT
                      + localconfig.GIT_PROJECT_COMPRESS_NAME
                      + "*/")
    # 上面一步到位
    # shutil.copyfile(localconfig.GIT_PROJECT_PACK_PC_CD_ROOT + localconfig.GIT_PROJECT_COMPRESS_NAME + localconfig.BUILD_TIMESTAMP + ".rar",
    #                localconfig.SRC_EXE_PATH + localconfig.GIT_PROJECT_COMPRESS_NAME + localconfig.BUILD_TIMESTAMP + ".rar")
    localutil.log("结束压缩复制文件")
Esempio n. 9
0
def upload_to_ftp():
    ftp = FTP()
    localutil.log("开始尝试连接ftp服务器")
    ftp.connect(localconfig.FTP_IP, localconfig.FTP_PORT)
    localutil.log("开始尝试登录ftp服务器")
    ftp.login(localconfig.FTP_USERNAME, localconfig.FTP_PASSWORD)
    src_file = localconfig.SRC_EXE_PATH + localconfig.GIT_PROJECT_COMPRESS_NAME + localconfig.BUILD_TIMESTAMP + ".rar"
    ftp_file = localconfig.FTP_EXE_PATH + localconfig.GIT_PROJECT_COMPRESS_NAME + localconfig.BUILD_TIMESTAMP + ".rar"
    if not os.path.isfile(src_file):
        localutil.log("文件" + src_file + "不存在,取消上传")
        return
    fp = open(src_file, 'rb')
    localutil.log("开始上传文件到ftp服务器")
    ftp.storbinary("STOR %s" % ftp_file, fp)
    localutil.log("上传结束,关闭句柄")
    fp.close()
    ftp.close()
Esempio n. 10
0
def check_compiler_log():
    if not os.path.exists(get_compile_log_path()):
        return False
    f = open(get_compile_log_path())
    lines = f.read()
    f.close()
    localutil.log(
        "================================Unity Error================================"
    )
    print(lines)
    localutil.log(
        "==========================================================================="
    )
    compile_error = False

    if lines.find("[Exception]") != -1:
        compile_error = True

    if lines.find("error CS") != -1:
        compile_error = True
    return compile_error
Esempio n. 11
0
def check_open_log():
    if not os.path.exists(get_open_log_path()):
        return False
    f = open(get_open_log_path())
    have_error = False
    line = f.readline()
    while line:
        if line.find("error CS") != -1:
            if not have_error:
                localutil.log(
                    "================================Unity Open Error================================"
                )
                have_error = True
            print(line)
        line = f.readline()
    if have_error:
        localutil.log(
            "==========================================================================="
        )
    f.close()
    return have_error
Esempio n. 12
0
def build():
    localutil.log("start build")
    # 创建两个线程
    try:
        _thread.start_new_thread(childFunc, (2, ))
        _thread.start_new_thread(mainFunc, (4, ))
    except:
        localutil.log("Error: unable to start thread")

    while not allow and not failEnd:
        pass

    if failEnd:
        localutil.exit_fail()
        return
    localutil.log("build success")
    localutil.exit_success()
Esempio n. 13
0
def kill_unity():
    localutil.log("force kill unity")
    localutil.execute('taskkill /f /im unity.exe')
Esempio n. 14
0
def param_test():
    nowTime = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M')
    localconfig.LOCAL_BUILD_TIMESTAMP_STR = nowTime
    localutil.log(localconfig.LOCAL_BUILD_TIMESTAMP_STR)
Esempio n. 15
0
def check_argv_git_branch():
    global GIT_BRANCH
    if len(sys.argv) >= 3:
        GIT_BRANCH = sys.argv[2]
        localutil.log("准备切换到git分支:" + sys.argv[2])
Esempio n. 16
0
def svn_update():
    localutil.log("先svn的trunk更到最新")
    os.chdir(CD_ROOT)
    localutil.execute(SVN_UPDATE)
Esempio n. 17
0
    # 创建两个线程
    try:
        _thread.start_new_thread(childFunc, (2, ))
        _thread.start_new_thread(mainFunc, (4, ))
    except:
        localutil.log("Error: unable to start thread")

    while not allow and not failEnd:
        pass

    if failEnd:
        localutil.exit_fail()
        return
    localutil.log("build success")
    localutil.exit_success()


# 配置命令编译参数
def append_argv():
    global UNITY3D_COMPILE_CMD_FOR_PC
    append_args = localutil.get_current_argv_without_disable()
    UNITY3D_COMPILE_CMD_FOR_PC = UNITY3D_COMPILE_CMD_FOR_PC + append_args


if __name__ == '__main__':
    if localutil.check_disable():
        localutil.log("disable")
    else:
        append_argv()
        build()
Esempio n. 18
0
def param_test():
    localutil.log(localconfig.BUILD_TIMESTAMP)
Esempio n. 19
0
def log_argv():
    index = 0
    for item in sys.argv:
        localutil.log("[" + str(index) + "]" + item + " ")
        index = index + 1
Esempio n. 20
0
def unity_compile():
    localutil.log("compile unity")
    if localutil.execute(UNITY3D_COMPILE_CMD_FOR_PC):
        localutil.log("Execute opne cmd failed")
Esempio n. 21
0
def unity_buildab():
    localutil.log("build assetbundle")
    if localutil.execute(localconfig.UNITY3D_BUILDAB_CMD_FOR_PC):
        localutil.log("Execute compile cmd failed")
Esempio n. 22
0
def open_unity():
    localutil.log("open unity")
    if localutil.execute(localconfig.UNITY3D_OPEN_CMD):
        localutil.log("Execute open cmd failed")
Esempio n. 23
0
        GIT_BRANCH = sys.argv[2]
        localutil.log("准备切换到git分支:" + sys.argv[2])


def main():
    localutil.log("start git update")
    os.chdir(CD_ROOT)
    localutil.git_config()
    git_infos_before = localutil.git_log()
    localutil.git_update(GIT_URL, GIT_BRANCH)
    git_infos_after = localutil.git_log()
    localutil.git_diff_log(git_infos_before, git_infos_after,
                           CD_GIT_LOG_PRINT_TXT)
    localutil.log("end git update")


# 打印参数 第一个参数(index = 1)为disable 第二个参数为切换的分支
def log_argv():
    index = 0
    for item in sys.argv:
        localutil.log("[" + str(index) + "]" + item + " ")
        index = index + 1


if __name__ == "__main__":
    localutil.log("准备执行项目git更新相关")
    log_argv()
    if not localutil.check_disable():
        check_argv_git_branch()
        main()