返回博客

GSoC 2025 最终期:jenkins.io 的构建重构

Birajit Saikia
Birajit Saikia
2025年10月19日

Jenkins GSoC Logo

这篇博文标志着我的 Google Summer of Code 2025 项目:Complete Build Retooling of jenkins.io 成功完成。在过去几个月里,我们已将 Jenkins 的文档基础设施从旧系统转型为一个现代化、高性能且组织良好的平台。

项目回顾

该倡议旨在实现 Jenkins 文档系统的三个核心目标:

  1. 现代化:从旧工具迁移到现代解决方案(Antora + Vite.js)

  2. 高性能:实现更快的构建流程和更好的用户体验

  3. 组织化:明确区分版本化内容(LTS 版本)和非版本化内容(通用文档)

到中期,我们已经通过 Antora 为版本化文档和 Vite.js 为非版本化内容打下了坚实的基础,并迁移了几个核心页面,建立了基本架构。

中期后成就

GSoC 的后半部分专注于完成所有剩余组件的迁移和完善用户体验。

非版本化站点(Vite.js)完成

Vite.js 站点已全面完成,所有关键组件均已迁移。

  • 主页:已完全实现,并集成动态内容

  • 博客系统:已完整迁移,并具备正确的日期处理和分类功能

  • 安全公告:完整的安全文件夹,包含所有公告和单个问题页面

  • 发行说明:已实现 LTS 和每周发行说明页面

  • UI/UX 优化:

    • 整个系统支持根据系统设置的暗/亮模式

    • 所有页面均使用正确的笔记图标和警告元素

    • 使用 jenkins-io-components 实现一致的页眉和页脚

    • 移动响应式设计改进

已合并的关键 PR 包括:

  • #43 - 主页实现

  • #42 - 修正所有页面的笔记图标

  • #40 - 发行说明集成

  • #39 - 安全公告文件夹

  • #37 - 博客系统迁移

  • #33 - 下载页面感谢提示

  • #31 - jenkins.io 组件的页眉和页脚

版本化站点(Antora)增强

文档存储库得到了显著改进:

  • UI 现代化:更新了样式和组件一致性

  • 内容清理:删除了冗余的安全文件夹(现已移至 Vite.js 站点)

  • 导航改进:增强了侧边栏和导航元素

  • SEO 基础:设置了 meta 标签和搜索引擎优化

主要贡献:

  • #380 - 全面的 UI 更改和现代化

  • #379 - 移除已弃用的安全文件夹

  • 持续的内容清理和导航链接修复

技术实现深度剖析

此次迁移采用了多项先进的技术方法:

  • 内容转换:将 AsciiDoc 自动转换为结构化的 JSON/YAML,用于在 Vite.js 中动态渲染

  • 组件架构:可重用的 React 组件,实现跨两个平台的 UI 一致性

  • 渐进式迁移:逐页渐进式迁移,确保零停机

  • 视觉一致性:与现有 jenkins.io 设计语言像素级匹配

  • 构建优化:通过适当的资源处理简化构建流程

挑战与学习

这段旅程提供了许多学习机会:

  • 内容规模:管理数千篇文档和博文需要精心的协调

  • 工具集成:Antora 和 Vite.js 生态系统之间的顺畅协调

  • UI 一致性:在现代化底层技术的同时保持视觉一致性

  • 社区协作:学会与 Jenkins 基础设施团队有效沟通和协调

  • 个人韧性:克服技术障碍、硬件故障和日程安排的挑战

这次经历不仅在现代 Web 技术和文档系统方面提升了我的技术技能,还提升了我在项目管理、沟通和开源协作方面的能力。

未来路线图

虽然核心迁移已完成,但仍有一些增强功能留待未来的贡献者完成:

  • 搜索集成:为两个站点实现 Algolia 搜索

  • 性能优化:图片压缩和构建时间改进

  • 渐进式 Web 应用:增强移动体验和离线功能

  • 可访问性:全面的可访问性审计和改进

  • 更多 UI 增强:继续使用一致的组件和改进的用户导航来现代化 Antora(版本化)站点。

  • 社区贡献:简化社区文档贡献流程

致谢

本项目取得的成功得益于我的导师们提供的巨大支持和指导:Kris SternBruno VerachtenKevin MartensRajiv Singh。他们的技术专长、战略指导和坚定不移的支持在此次复杂的迁移过程中起到了关键作用。

特别感谢整个 Jenkins 基础设施团队的支持和审查,以及 Alexander Brandes 在搜索集成方面的指导。Jenkins GSoC 的组织者们创造了一个有利的学习环境,使得这段学习之旅成为可能。

对我而言,这不仅仅是一个暑期项目;它是一次在开源贡献、技术架构和职业成长方面的转型经历。

最终演示

最终的项目演示全面概述了已完成的工作和技术成就。您可以在 Jenkins 的 Google Summer of Code 页面上查看所有 GSoC 2025 的演示文稿:Jenkins in Google Summer of Code page

项目资源

Complete Build Retooling 项目已启动 jenkins.io 网站的重构,将其打造为一个现代化、可扩展且易于维护的文档平台,将为 Jenkins 社区服务多年。感谢所有支持这段旅程的人!

关于作者

Birajit Saikia

Birajit Saikia

Birajit 目前在印度浦那的牛顿科技学院(NST)攻读计算机科学与工程专业的学士学位,专攻人工智能和机器学习。

Birajit 热衷于软件开发、Web 开发、技术文档和 DevOps,自 2024 年 11 月以来一直是 Jenkins 社区的积极贡献者。2025 年,他被选为 Jenkins 项目的 Google Summer of Code (GSoC) 贡献者,负责 Complete build retooling of jenkins.io

除了开发工作,Birajit 还深深热爱竞争性编程以及数据结构和算法。他喜欢解决复杂的问题,优化解决方案,并不断挑战自己的逻辑推理能力。

在技术追求之余,Birajit 还喜欢打板球和在厨房里尝试新食谱。

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