已合并
action上线适配 #226
cui_jiahao创建于 6 天前
action上线适配 #226
已合并
cui_jiahao创建于 6 天前
cui_jiahao成员
6 天前

描述

关联的Issue

测试

文档更新

类型标签

  • Bug修复
  • 新特性
  • 性能优化
  • 文档更新
  • 其他,请描述:
likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 cui_jiahao 的贡献)
Ccui_jiahao成员
6 天前 创建了 pull request,commit 6f468e25
atomgit-bot
atomgit-bot
6 天前 评论:

变更摘要

本次 PR 主要为 ops-tensor 项目新增了完整的 CI/CD 流水线适配,引入了编译脚本、单元测试脚本以及 5 个可复用的 workflow 定义,形成三阶段(PreBuild → Compile → UT)的自动化流水线。整体通过 .gitcode 目录下的脚本和 workflow 编排,实现了多架构(x64/arm64)、多系统版本(如 ubuntu24)的编译、代码检查(precommit、SCA、反病毒、静态检查)以及单元测试覆盖率上报等 CI 能力,并通过 OBS(华为云对象存储)在各阶段间传递文件列表和构建制品。

主要改动

  • 新增 compile.sh 编译脚本: 为 ops-ras 项目封装了编译入口,根据 task_name 判断是否启用 API 兼容性检查(api-check=compile),最终执行 build.sh --pkg --soc=ascend950 完成构建

  • 新增 ut.sh 单元测试脚本: 为 ops-math 项目封装了单元测试执行逻辑,通过 build.sh --opkernel -u 运行 C++ 测试用例,并包含断言函数 DP_ASSERT_EQUAL 用于验证执行结果

  • 新增 ops-tensor_action.yml 主流水线: 定义了完整的 PR 流水线,包含 PreBuild(预处理、镜像版本决策、PR 文件列表生成)、Compile(x86/ARM/ubuntu24 多维度编译 + 代码检查 + 静态检查)、UT(API 检查 + 单元测试)三个阶段,并配置了并发控制和事后通知

  • 新增 compile_action.yml 可复用编译 workflow: 通过 workflow_call 暴露 task_nameimage_versionarchpackage_name 等参数,支持 build-accelerate 加速编译、产物重命名、API 检查和包校验,覆盖 x64 与 arm64 架构

  • 新增 codecheck_action.ymlstaticcheck_action.yml 质量门禁: 集成了 precommit、PR 检查、SCA 软件成分分析、反病毒扫描、codecheck 代码检查以及 staticcheck 静态检查等多重质量门禁,通过 OBS 下载/上传文件列表实现阶段间数据传递

likedislike
atomgit-bot
atomgit-bot
6 天前 评论:

代码审查

审查总结

共审查 7 个变更文件,发现 17 个问题:

各文件审查结果

文件 P2 P3 状态
.gitcode/scripts/compile.sh 0 2 已审查
.gitcode/scripts/ut.sh 3 2 已审查
.gitcode/workflows/codecheck_action.yml 0 0 已审查,无问题
.gitcode/workflows/compile_action.yml 2 1 已审查
.gitcode/workflows/llt_action.yml 2 0 已审查
.gitcode/workflows/ops-tensor_action.yml 3 0 已审查
.gitcode/workflows/staticcheck_action.yml 1 1 已审查

按优先级统计

  • P0: 0
  • P1: 0
  • P2: 11
  • P3: 6

整体风险评估:中等风险

主要问题集中在以下几个方面:

  1. API 检查遗漏compile_action.yml 中 api-check 条件 task_name 与实际调用方传入的值不匹配,导致 ubuntu24 编译产物未经 API 兼容性检查。
  2. Shell 脚本可靠性ut.sh 存在多项问题——LOG_DO 函数命令拆分错误、参数传递丢失结构、set -e 与断言的死代码冲突。这些在特定条件下会导致脚本行为异常。
  3. Workflow env 自引用ops-tensor_action.ymlobs_path/obs_smoke_path 在同一个 env 块内引用其他 env 变量,可能不被 CI 平台支持,导致 OBS 路径错误。
  4. Checkout ref 回退缺失:3 个 workflow 文件中 checkout 步骤仅有 merge_commit_sha 而无 atomgit.sha 回退,非 PR 触发时可能 checkout 错误版本。
  5. 拼写错误staticcheck_action.yml 的 workflow name 拼写为 staticheck_action,与文件名不一致。

建议优先修复 api-check 条件不匹配(P2)、ut.shset -e 与断言冲突(P2)、以及 env 自引用(P2)这三个问题,它们是本次变更中影响面最大、触发确定性最高的缺陷。

类型 数量
🔴 阻塞 1
🟡 建议 12

⛔ 需要修改

likedislike
CANN-robotCANN-robot成员
6 天前 添加了label:stat/needs-squash
CANN-robotCANN-robot成员
6 天前 添加了label:cann-cla/yes
此处折叠了74条消息 查看更多
Larry成员
3 天前 评论:

/approve
/lgtm

likedislike
CANN-robotCANN-robot成员
3 天前 添加了label:lgtmapproved
CANN-robot
CANN-robot成员
3 天前 评论:

The MR can not be merged, because of CodeReview discussion not resolved

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
Ccui_jiahao成员
3 天前 解决了最后一个问题
CANN-robotCANN-robot成员
3 天前 合入了pull request