已关闭
[Requirement|需求建议]: 支持本地执行CI相关流程。 #206
liu-wei创建于  3月17日关闭于  3月17日
liu-wei
liu-wei成员
3月17日 创建

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"

🔹 核心流程说明

  1. 环境设置:准备工作路径、依赖库路径
  2. Git 操作:找远程、计算 merge base、生成变更文件列表
  3. 构建:清理旧文件,构建 cv_ops 包、单个算子、Ascend950 包和 JIT
  4. 测试:执行单元测试、Smoke 测试
  5. 实验性算子:构建并验证
likedislike
liu-weiliu-wei成员
3月17日 添加了label:requirement
liu-weiliu-wei成员
3月17日 修改了issue 的描述
liu-weiliu-wei成员
3月17日 将 liu-wei 设为负责人
liu-weiliu-wei成员
3月17日 关联了pull request:support local compilation CI build.
liu-wei
liu-wei成员
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 技能生成

likedislike
liu-weiliu-wei成员
3月17日 修改标题为 “[Requirement|需求建议]: 支持本地执行CI流程的命令”,原标题为“[Requirement|需求建议]: ”
liu-weiliu-wei成员
3月17日 修改标题为 “[Requirement|需求建议]: 支持本地执行CI相关流程。”,原标题为“[Requirement|需求建议]: 支持本地执行CI流程的命令”
CANN-robotCANN-robot成员
3月17日 关闭了 issue
CANN-robotCANN-robot成员
3月20日 添加了label:resolved