ManCI: 一个 Jenkins library 库,轻松集成Gitee平台的 CI/CD 流程

groovy
guolong123 · 2024年04月11日 · 6544 次阅读 · 0 条评论

ManCI:面向中国开发者生态的 Jenkins 流水线简化自动化框架

介绍

ManCI 是一款专为中国开发者社区打造的 Jenkins 流水线自动化框架,旨在应对当前 CI 过程中的挑战,借鉴 GitHub 的 CI 工作流最佳实践,并通过 Jenkins 库的形式,无缝对接国内广泛使用的代码托管平台——Gitee,为国内开发团队提供一套便捷、高效、本土化的 CI 解决方案。

国内 CI 现状与痛点

当前,国内的 CI 流程尚处于发展阶段,普遍存在以下问题:

  1. 工具局限性:尽管 Jenkins 被广泛应用,但它往往仅被当作一个基础构建工具,缺乏针对 CI 流程的深度整合与智能化管理。

  2. 人工干预多:很多团队的 CI 过程仍严重依赖人工触发与监控,自动化程度低,导致效率低下,易出错。

  3. 平台对接不畅:对于国内常用的 Gitee 等代码托管平台,现有的 CI 工具往往缺乏深度集成,无法实现 PR 页面的实时反馈与交互。虽然当前 Gitee 平台自身集成了 Gitee Go,但总觉得缺点意思,主要是不够灵活。

ManCI 的价值与优势

针对上述痛点,ManCI 以 Jenkins library 形式出现,旨在提供:

自动化驱动的 CI 流程

  • 智能触发:ManCI 自动响应 Pull Request(PR)生命周期中的关键事件(如打开、更新、合并、关闭等),无需人工干预即可启动相应的代码检查、构建、测试等任务。

  • 动态执行:根据 PR 状态、代码改动范围、环境变量等因素,动态确定应执行的 CI 阶段,避免无效或过度的构建工作。

Gitee PR 页面深度集成

  • 实时反馈:ManCI 能在 Gitee PR 页面上直接展示 CI 表格,清晰罗列各阶段的执行状态、耗时、触发原因等信息,让团队成员无需离开 PR 界面即可掌握完整构建进度。

  • 交互式操作:支持通过 PR 评论触发特定阶段重跑、传递自定义参数等操作,使开发者能在 PR 页面直接与 CI 流程互动,提升协作效率。

  • 自动管理标签与评论:根据 CI 结果自动为 PR 添加标签(如 “ci-success”、“ci-failure” 等),并在 PR 下通过直观的表格反馈构建结果,确保团队成员及时获取反馈,促进代码审查与合并决策。另外可以结合 Gitee 的最低测试人功能来设置质量门禁,当 CI 执行成功时,会给 PR 测试通过,否则不允许合并代码。

展示效果

参考:https://gitee.com/guojongg/manci/pulls/23
PS:貌似 testerhome 的图片上传点击无效,无法展示图片

github 地址:https://github.com/guolong123/manci/tree/main

评论列表
暂无评论.