返回博客

GSoC 中期更新,现代化和稳定 Jenkins Tekton 插件

Maeve Ho
Maeve Ho
2025 年 7 月 28 日

大家好!

我是 Maeve,利哈伊大学的一名计算机科学专业学生,目前正在参加 2025 年 Google Summer of Code。我的项目涉及现代化 Jenkins Tekton 插件,旨在为 Jenkins 和 Kubernetes 原生 Tekton 流水线之间创建一个稳定、可投入生产的集成。

随着编码期过半,我想分享一下这段激动人心旅程前半段的进展和成就。

本阶段主要成就

到目前为止完成的工作主要集中在为插件建立坚实的基础。

技术现代化

我已成功将插件的核心基础设施从过时的 Java 8 和 Jenkins 4.18 升级到 Java 17 和 Jenkins 2.440+。这项现代化工作涉及更新大量的依赖项和 API 调用,以确保插件能够与当前的 Jenkins 安装无缝协同工作。

测试革命

测试环境已发生彻底的转变。我已将整个测试套件从 JUnit 4 迁移到 JUnit 5,转换了 21 个现有的单元测试,同时实现了现代化的测试模式,包括参数化测试和改进的生命周期管理。已重写了损坏的测试逻辑,使其与当前插件的行为保持一致。

端到端测试基础设施

也许最重大的成就是创建了全面的端到端测试能力。我构建了四个新的集成测试,这些测试会自动配置 Kind Kubernetes 集群,安装 Tekton 组件,创建 Jenkins 作业,并验证完整的工作流执行。这些测试在我们的 GitHub Actions 流水线中运行,并且只需 3-4 分钟即可完成。

持续集成流水线

一个强大的 CI/CD 流水线现在为开发流程提供动力。GitHub Actions 工作流处理从环境设置到测试执行和报告的所有内容,为每一次代码变更提供即时反馈。

代码质量监控

JaCoCo 集成现在提供了详细的代码覆盖率洞察。虽然我们整体覆盖率为 12%,但某些关键包(如构建模块)的覆盖率达到了 73%,这为我们提供了清晰的测试优先级可见性。

技术见解与学习

参与此项目让我深刻理解了维护不同 CI/CD 范式之间兼容性的挑战。Jenkins 的传统方法与 Kubernetes 原生 Tekton 执行之间的集成需要仔细考虑资源管理、身份验证和错误传播。

端到端测试方法已被证明特别有价值——这些测试可以捕获仅通过单元测试无法检测到的集成问题。观察真实 Tekton TaskRuns 和 PipelineRuns 在我们的测试集群中执行,让我们对插件在真实场景中的正确工作充满信心。

未来开发重点

剩余的编码期将集中在几个关键领域。

动态 CRD 支持

实现对动态 Tekton 自定义资源定义(CRD)的支持,将使用户能够利用高级 Tekton 功能并创建更灵活的集成模式。

增强用户体验

重点将转向改进错误处理、扩展文档以及为常见用例提供清晰的示例,以使插件对用户更加易于访问。

性能与可扩展性

针对大规模 Kubernetes 部署的优化和改进的资源管理将确保插件在企业环境中表现良好。

迁移路径开发

构建工具和文档,帮助团队从传统的 Jenkins 流水线迁移到云原生 Tekton 工作流,这是至关重要的长期目标。

社区与指导

这次经历凸显了开源协作的价值。与经验丰富的 Jenkins 社区成员合作,不仅让我获得了技术实现的见解,还深入了解了使插件成功的更广泛的生态系统考虑因素。

GSoC 的指导方面尤其富有成效——能够接触到既了解 Jenkins 插件架构又理解 Kubernetes 生态系统细微差别的专家,极大地加速了学习过程。

中期演示

在最近的中期演示中,我展示了当前的功能,包括自动化测试流水线和真实世界的集成场景。对于那些对我们测试策略和现代化方法的细节感兴趣的人,可以在Jenkins in Google Summer of Code 页面上找到演示录像。

项目仓库

开发进展可在以下位置跟踪:GitHub Repository

基础已经打牢,我充满活力,将继续构建能够帮助开发团队将云原生 CI/CD 实践无缝集成到他们现有 Jenkins 工作流中的功能!

关于作者

Maeve Ho

Maeve Ho

Maeve 目前正在利哈伊大学攻读计算机科学学士学位。她拥有 Kubernetes、CI/CD 和插件开发的实践经验,曾为大规模云原生工作流和高性能计算系统做出贡献。

2025年,Maeve 入选为 Jenkins 项目的 Google Summer of Code (GSoC) 贡献者,专注于增强 Tekton 客户端插件,通过在 Jenkins 中实现 Tekton 资源的完整 CRUD 支持。

在开源工作之外,她曾在 VNPT 实习,并在利哈伊大学的 NANO Lab 进行研究。Maeve 热衷于将传统的 CI/CD 工具与现代 Kubernetes 原生解决方案相结合。

© . This site is unofficial and not affiliated with The Linux Foundation.