当前位置: 首页 > news >正文

CANN/community持续集成指南

代码仓门禁与版本集成流程指导

【免费下载链接】community本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息项目地址: https://gitcode.com/cann/community

一、使用场景

CANN社区通过持续集成(CI,Continuous Integration)及时发现代码问题,确保代码质量可靠和功能稳定,主要包括以下两种集成场景:

  • 代码门禁检查:开发者向CANN提交代码合入申请后,通过评论中输入特定命令触发门禁检查(包括静态检查、病毒扫描、成分扫描、功能测试等),门禁通过后方可合入代码。相较于版本构建,门禁检查主要关注增量代码的质量风险。

  • 每日版本构建:每日自动触发的流水线,对整体代码进行安全扫描、病毒扫描、成分扫描和功能测试,识别全量风险,确保版本质量。

当开发者向社区贡献代码仓并需要接入持续集成流程时,请参考本指导进行操作。


二、代码门禁集成

代码门禁集成需由基础设施团队操作完成,捐赠者需提供相应配置信息。可通过在基础设施仓提交Issue的方式进行申请。

操作步骤

  1. 选择Issue模板

  2. 填写信息并提交Issue

    配置信息说明:

    • 代码编译指导(必填):例如基础算子仓通过build.sh进行编译,需提供具体运行命令(如bash build.sh --pkg)。建议脚本支持增量编译以提升效率,详细运行方式可在README中说明。

    • UT运行指导(必填):以算子仓为例,运行UT脚本及命令为bash build.sh -u --ophost,详细运行方式可在README中说明。

    • 门禁触发命令(可选):建议统一使用/compile命令触发,如有定制需求请在Issue中说明。

  3. 基础设施团队配置

    基础设施团队收到Issue后,将根据提供的信息部署集成流水线。如遇问题,会与协助人沟通解决。

门禁流程包括代码下载、编译构建、代码检查和测试用例等环节,均由基础设施团队默认配置。提交PR触发门禁的详细指导请参考门禁流程使用指导。


三、每日版本集成

每日版本集成流水线同样由基础设施团队操作。提交Issue后,将同步创建门禁集成和每日版本集成流水线。所需配置信息与门禁集成基本一致,如有差异请在Issue中说明。

构建流程

  1. 代码下载:默认下载全量master分支代码进行每日构建。
  2. 编译构建:根据提供的命令进行全量版本构建,覆盖X86、Arm平台,输出构建产物。
  3. 代码检查:包括代码安全、病毒扫描、源码成分检查等,当前与门禁流水线检查项一致。
  4. UT测试:运行测试用例验证功能正确性。版本用例可能与门禁用例不同,请提供详细运行方式。

结果通知

每日版本流水线运行结果将发送至CI工程师的邮箱,无论成功与否均会发送。邮件示例如下:

用户可点击邮件中的链接查看详细构建信息:


四、每日版本产物下载

代码仓每日构建产物将在mirror仓中单独创建目录存放,支持开发者下载使用。

访问地址:https://mirror.huawei.com/cann/${repo_name}/${branch}/daily/${yyyymm}/${dd}/

参数说明:

  • ${repo_name}:代码仓名称
  • ${branch}:构建分支
  • ${yyyymm}:构建年月(如202501表示2025年1月)
  • ${dd}:构建日期(如05表示当月5日)

示例:https://mirror.huawei.com/cann/project_demo/master/daily/202510/20/表示project_demo仓master分支在2025年10月20日的构建产物。

点击访问下载链接


五、联系我们

集成流程配置由基础设施团队完成,具体实施人员联系方式请查看SIG组织信息。


六、常见问题(FAQ)

我们将根据运作过程中的问题持续完善本FAQ,您也可以通过提交Issue的方式贡献宝贵经验。

问题反馈地址


相关链接

  • 社区机器人使用指导
  • SIG组织信息
  • 问题反馈

【免费下载链接】community本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息项目地址: https://gitcode.com/cann/community

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/785923/

相关文章:

  • AI算法黑箱的法律归责挑战:从技术原理到责任鸿沟
  • 【GaussDB】数据加密方式:函数加密、透明加密与全密态
  • OpenSpeedy终极指南:5分钟掌握免费开源游戏变速技巧
  • 抖音矩阵云混剪系统 源码短视频矩阵营销系统V2.3.0(免授权版)
  • AI赋能建筑工程电气电子工程:从自动化设计到智能运维的实践指南
  • 安达发|APS智能排产排程排单软件:重塑金属加工生产效能
  • 因果图与特征组合:构建人机协同的算法公平性分析工具
  • 终极指南:5分钟搭建个人游戏串流服务器Sunshine,免费玩转3A大作
  • 基于MCP协议构建AI助手与Google Docs的无缝集成方案
  • MoE、多模态与AGI:生成式AI的范式转移与核心技术融合
  • 深度解析NHSE:如何通过二进制逆向工程实现游戏存档的完全掌控
  • Seraphine终极指南:英雄联盟自动BP与战绩查询系统完整教程
  • Web 3.0中AI与边缘计算融合:从反洗钱到去中心化存储的实践
  • 机载声探测网络低信噪比声源定位与数据融合【附仿真】
  • CANN/ge CountBatch批处理功能
  • MoE与边缘AI融合:重塑元宇宙实时内容生成新范式
  • 开源AI管家JARVIS-:从多模型集成到智能家居控制实战
  • 数据智能前沿:从过程分析到可信AI的跨学科研究与实践
  • 主动学习加速广义Benders分解求解混合整数经济模型预测控制
  • AI Agent工具化实战:基于MCP协议构建安全可控的自动化工作流
  • 源码获取博主介绍
  • 昇腾TF适配器ReduceScatter算子
  • JAVA同城上门做饭系统家政上门同城服务系统源码小程序+APP+公众号+h5
  • GEO优化怎么做:万字深度拆解生成式引擎优化
  • 基于XAI与盲掩码自监督学习的地震数据去噪技术解析
  • CANN/hcomm获取本地rank大小
  • 机器学习模型不确定性量化:基于混淆矩阵自举法与LLM辅助分析
  • 如何高效配置智能键盘输入映射工具:Hitboxer跨平台SOCD解决方案实战指南
  • 魔兽争霸3终极优化指南:告别闪退卡顿,轻松玩转经典游戏
  • Java Object