已关闭
[Requirement|需求建议]: 支持本地执行CI相关流程。 #206
liu-wei创建于 3月17日关闭于 3月17日
3月17日 添加了label:requirement
3月17日 修改了issue 的描述
3月17日 将 liu-wei 设为负责人
3月17日 关联了pull request:support local compilation CI build.
liu-wei
3月17日 评论:
3月17日 评论:
Issue 审查意见
需求概述
本Issue提出在本地执行CI构建流程的需求,旨在帮助开发者在代码开发完毕后提前在本地执行构建,提前发现代码问题,减少服务器资源竞争。
需求分析
- 背景:开发者代码开发完毕后,应在本地先执行构建流程
- 价值:减少失败构建竞争的服务器资源,提升整体构建上库效率
- 方案:提供本地CI构建脚本
实现情况
该需求已通过 PR #537 实现:
- PR #537 新增了
scripts/ci/local_build.sh脚本 - 脚本支持以下功能:
-u- 构建单元测试-s- 构建冒烟测试流程-f <file>- 指定构建文件列表--jit- 启用OPHost构建
结论
✅ 需求已实现 - PR #537 已完成本地CI构建脚本的开发,建议关闭此Issue。
由 OpenCode code-checker 技能生成


3月17日 修改标题为 “[Requirement|需求建议]: 支持本地执行CI流程的命令”,原标题为“[Requirement|需求建议]: ”
3月17日 修改标题为 “[Requirement|需求建议]: 支持本地执行CI相关流程。”,原标题为“[Requirement|需求建议]: 支持本地执行CI流程的命令”
3月17日 关闭了 issue
3月20日 添加了label:resolved
Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.
Backgroud(背景信息)
当开发者代码开发完毕后,应在本地先执行构建流程,提前发现代码问题,提升整仓构建质量。
Origin(信息来源)
开发者
Benefit / Necessity (价值/作用)
减少失败构建竞争的服务器资源,提升整体构建上库效率。
Design(设计方案)
框架伪代码
#!/bin/bash # 1️⃣ 设置环境 WORKSPACE=$(pwd) BUILD_PATH="$WORKSPACE/build" export ASCEND_3RD_LIB_PATH="$WORKSPACE/third_party" # 2️⃣ 获取 git 信息 REMOTE_NAME=$(detect_remote "$TARGET_URL" || echo "origin") MERGE_BASE=$(git merge-base "$REMOTE_NAME/$BASE_BRANCH" "$LOCAL_BRANCH") CHANGED_FILES=$(git diff --name-only "$MERGE_BASE" "$LOCAL_BRANCH") echo "$CHANGED_FILES" > pr_filelist.txt # 3️⃣ 清理旧构建 rm -rf $BUILD_PATH build_out THREAD_NUM=$(nproc) # 4️⃣ 构建 cv_ops 包和单个算子 build_package "--pkg" ops="fatrelu_mul" if changed_files_affect_single_op; then build_single_op "single.tar.gz" fi # 5️⃣ 构建 Ascend950 包(x86/ARM) ARCH=$(uname -m) compile_ascend950_package "pr_filelist.txt" "$ARCH" # 6️⃣ 构建 JIT 版本 build_package "--pkg --jit" -j $THREAD_NUM # 7️⃣ 执行单元测试 run_utest "--ophost" "pr_filelist.txt" -j $THREAD_NUM run_utest "--opapi" "pr_filelist.txt" -j $THREAD_NUM if [ "$BASE_BRANCH" = "master" ]; then run_utest "--opgraph" "pr_filelist.txt" -j $THREAD_NUM check_kernel_utest_logs "pr_filelist.txt" fi # 8️⃣ Smoke 测试特定算子 if need_check_example; then run_smoke_test "cv_a900" "pr_filelist.txt" fi # 9️⃣ 构建实验性算子并执行示例 build_experimental_pkg "pr_filelist.txt" run_experimental_example "pr_filelist.txt"🔹 核心流程说明