2024.09.20

Narrate

ToDo

Knowledge

  • python normpath

  • python r 表达式 & 三重引号


工作内容

因为今天测试通知晚上要给老板交付游戏包,所以今天我就不做构建脚本的提交,明天再提交测试。

188 网络拥塞

今天早上来做了几次测试,下载速度正常

构建错误

今早来发现昨晚构建失败,但是没有抛出报错信息到群里

观察了一下,Unity构建的任务 fatal error 了但是任务节点没有报红,查错不是很直观,看了一下,任务节点配置里面的错误行正则表达式没有配置

想到了 资源配置导出提交 流水线中 unity 构建是配置了错误行正则匹配的,后续根据现在的报错流程和报错情况再做合理的完善,先插个眼。

脚本流程待验证部分

PreBuild 这里会使用 之前 export 的文件,但是貌似没用上,被中断了,打个日志,明天看一下执行情况。获取 export 文件(也就是之前提前导出的 client.zip)可能到 #13 line 那里就直接返回了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
PreBuild.py

# 下载导出好的配置文件及odin的aot dll并解压到对应目录下
def get_exported_files(bi: BuildInfo) -> bool:
if BUILD_TARGET == "server":
return True

check_file = os.path.join(
UNITY_PRJ, r"Assets\ArtShell\ViewSettings\view_settings.manifest"
)
# 如果这个文件存在说是旧的导出方式,需要使用客户端导出好的文件到工程中
# 否则,是新的导出方式,不再使用这个文件。
if not os.path.isfile(check_file):
log_warn("不使用导出的 client.zip")
return True

zip_name = f"{BUILD_TARGET}.zip"

export_file = f"{bi.export_dir}/{zip_name}"

if not download_files(export_file, BUILD_TEMP, use_189=USE_189_FILE_SVR):
return False

local_path = os.path.join(BUILD_TEMP, zip_name)
if not unpack_archive(ZIP_CMD, local_path, LOCAL_ROOT):
return False

log_info(f"unpack exported zip {zip_name} to {LOCAL_ROOT} ok!")
return True

unity patch 需求

新增了 patch目录,需要加入到构建流程中

  • 流水线新增开关变量到 ARGS 列表中

  • patch_unity中添加开关,添加patch路径和ori路径

  • 书写分歧逻辑提交测试

流水线即脚本阅读

今天依旧是巩固细看了一遍客户端构建和版本整合流程,整理了一下目录和流程的输入输出项。

  • 先导出一份 client.7z 上传 export 文件夹

  • Bundler 构建

    • 下载 client_BuildBundlerDataCache.7z 到 构建本地 Main/BuildData
    • unity patch
    • 以 BuildWindowClientInBatchMode 模式进行编译
    • 从 Main\MechaBREAK_Data 目录打一个压缩包 Bundler_svnver.7z 作为Bundler压缩包上传189,以及BundleBuildDetail.txt、build_bundler.log文件
    • 将 client_BuildBundlerDataCache.7z 上传至 189 和 188
  • Player 构建

    • unity patch
    • 以 BuildWindowClientInBatchMode 模式进行编译
    • 压缩 il2cpp
    • 对 二进制 Main\Builds\MechaBREAK.exe 和 dll 写入版本号
    • 将 il2cpp、svt、shadercache 以及相关日志、符号、svn log 、 build report 等文件 上传189
  • gameshared

    • 编译 MechaServer 代码
    • 将符号上传 188
    • 将 GameShared.dll 上传189
  • 版本整合

    • 189 机器上将 Player 解压,将 gameshared 和 manifest 合入到 Player目录,然后将 Player 压入Bundler压缩包中
    • 将客户端包上传至 188 主页路径,上传至 QA
    • 如果是今天第一次构建,上传 Library 压缩包
    • 将客户端包同步到两台加速文件服务器(位于#9的207和209机)

目录&构建机总结清单

看到哪儿总结到哪儿,下面是今天的进度

待办

  • unity patch 需要提交测试

  • PreBuild.py 中 Client.7z download流程需要日志确认是否跳过,因为目前没有看到日志

  • 报错系统梳理完善

  • 包体部署体验流程