scripts/ci/analyze_ops_time.py 在脚本主体直接 for child in Path(workdir).iterdir(),未对 workdir(即 build/binary)是否存在做检查。
scripts/ci/analyze_ops_time.py
for child in Path(workdir).iterdir()
workdir
build/binary
按算子筛选运行的 CI 流水线中,目标 SoC 的 build/binary/<soc>/bin/build_logs 目录不会被创建,脚本立即抛出 FileNotFoundError 并以非 0 退出码失败,污染 CI。
build/binary/<soc>/bin/build_logs
FileNotFoundError
python3 scripts/ci/analyze_ops_time.py
exit 0
workdir 不存在时视为"无活干、跳过",正常退出,不阻断 CI。
Path.iterdir 抛 FileNotFoundError: [Errno 2] No such file or directory: '.../build/binary',进程以非 0 退出码失败。
Path.iterdir
FileNotFoundError: [Errno 2] No such file or directory: '.../build/binary'
在脚本入口遍历前增加:
if not os.path.exists(workdir): logging.info(f"Workdir not exist: {workdir}") exit(0)
PR #961:fix: exit gracefully when build workdir is missing(+4/-0,scripts/ci/analyze_ops_time.py)
问题描述
scripts/ci/analyze_ops_time.py在脚本主体直接for child in Path(workdir).iterdir(),未对workdir(即build/binary)是否存在做检查。按算子筛选运行的 CI 流水线中,目标 SoC 的
build/binary/<soc>/bin/build_logs目录不会被创建,脚本立即抛出FileNotFoundError并以非 0 退出码失败,污染 CI。复现步骤
build/binary目录(或在按算子筛选的 CI 中跳过 SoC 全量构建)python3 scripts/ci/analyze_ops_time.pyFileNotFoundError异常,进程非 0 退出exit 0期望行为
workdir不存在时视为"无活干、跳过",正常退出,不阻断 CI。实际行为
Path.iterdir抛FileNotFoundError: [Errno 2] No such file or directory: '.../build/binary',进程以非 0 退出码失败。解决方案
在脚本入口遍历前增加:
if not os.path.exists(workdir): logging.info(f"Workdir not exist: {workdir}") exit(0)关联 PR
PR #961:fix: exit gracefully when build workdir is missing(+4/-0,scripts/ci/analyze_ops_time.py)