ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

给Jenkins Helm Chart项目贡献代码:Tilt本地开发、helm-unittest测试与CI流程完整指南

给Jenkins Helm Chart项目贡献代码:Tilt本地开发、helm-unittest测试与CI流程完整指南 给Jenkins Helm Chart项目贡献代码Tilt本地开发、helm-unittest测试与CI流程完整指南【免费下载链接】helm-chartsJenkins helm charts项目地址: https://gitcode.com/gh_mirrors/helmcharts16/helm-chartsJenkins Helm Chart 项目Jenkins 社区官方 Helm chart 仓库是 Kubernetes 上部署 Jenkins 的标准方式。本指南带你走完 Jenkins chart 开发全流程用 Tilt 一键本地调试、用 helm-unittest 跑 214 个单元测试、并看懂 PR 背后的 CI 检查与自动发布机制——这是给 Jenkins Helm Chart 贡献代码的完整指南 这个 Jenkins Helm Chart 仓库有什么仓库结构非常简洁核心就一个 chartchart 主体charts/jenkins/下values.yaml定义所有可配置项templates/里的 30 多个模板文件生成 StatefulSet、Ingress、RBAC、Secret 等 K8s 资源测试体系charts/jenkins/unittests/存放 28 个 helm-unittest 测试套件214 个用例 50 个快照断言CI 配置ct.yaml是 chart-testing 的配置.github/workflows/里是 lint、发布等流水线贡献规范CONTRIBUTING.md是唯一需要精读的文档流程全部写在那里 想快速了解项目背景先读 README.md 和 CONTRIBUTING.md再进入charts/jenkins/目录。Tilt 本地开发3 条命令部署 Jenkins 到你的集群项目内置了 Tilt 文件charts/jenkins/Tiltfile它做的事很直接用 Helm 渲染当前 chart并把管理员密码设为asdf然后监听目录变化自动热更新。前置准备二选一装一个本地集群即可minikube / k3d / kind / microk8sTilt启动步骤CHARTjenkins cd charts/$CHART tilt upTilt 会把 release 名带chart-jenkins前缀的 Jenkins 装进集群。用 minikube 打开隧道即可访问minikube service chart-jenkins然后以admin/asdf登录就能在浏览器里看到你的修改实时生效——改templates/或values.yaml后无需手动helm upgrade这就是 Tilt 本地开发效率高的原因 ✨helm-unittest 单元测试运行指南一次跑通 214 个用例项目鼓励为每个模板改动补充单元测试测试文件都在charts/jenkins/unittests/目录例如home-pvc-test.yaml会逐条断言 PVC 的访问模式、存储大小、注解等字段。第一步安装 helm-unittest 插件helm plugin install https://github.com/helm-unittest/helm-unittest --version 1.0.3第二步运行测试helm unittest --strict -f unittests/*.yaml charts/jenkins全部通过时的末尾输出长这样Charts: 1 passed, 1 total Test Suites: 28 passed, 28 total Tests: 214 passed, 214 total Snapshot: 50 passed, 50 total两个实用细节输出里可能出现一两条 warning 是预期内的——部分测试故意传入与默认值不同类型的值来验证模板的健壮性unittests/__snapshot__/目录存放快照断言如果你改了模板输出需要同步更新对应的.snap文件CI 流程解析打开 PR 后系统会检查什么PR 触发.github/workflows/lint-test.yaml流水线做了四件事ct list-changed对比main分支找出被修改的 chart未改 chart 的 PR 会跳过重量级检查ct lint对变更 chart 做 lint 检查helm unittest作为ct.yaml里的additional-commands附加命令CI 会完整跑一遍单测ct install在3 个 Kubernetes 版本v1.32 / v1.33 / v1.34的 kind 集群矩阵中真实安装 chart确保多版本兼容合并到main后.github/workflows/release.yaml接管发布读取Chart.yaml的版本号 → 从CHANGELOG.md提取该版本的变更说明写入artifacthub.io/changes注解 → 用 chart-releaser 打包 → 推送到 OCI 仓库并发布。你不需要手动打包版本号对发布自动来。贡献版本规范让 PR 一次通过的前置条件这是最容易卡住的环节CONTRIBUTING.md明确了三条硬性要求要求说明版本号必须 bump任何改动哪怕只改文档都要按 SemVer 升Chart.yaml的version补 CHANGELOG 条目在CHANGELOG.md顶部为新版本加一条变更描述同步 VALUES.md修改了values.yaml就要在仓库根目录运行.github/helm-docs.sh自动重新生成VALUES.md此外还有两条原则不可变性chart 一旦发布不可修改所有变更必须伴随新版本破坏性变更需要 bump MAJOR 版本并在UPGRADING.md中写清手动升级步骤多个 chart 的改动请分开提 PR方便测试和合并新手贡献路径清单阅读CONTRIBUTING.md与CONTRIBUTING.md引用的charts/jenkins/UPGRADING.md本地用 Tilt 起一个可交互的 Jenkins 环境复现你要修的问题修改模板或默认值顺手在charts/jenkins/unittests/加一条断言bumpcharts/jenkins/Chart.yaml版本补charts/jenkins/CHANGELOG.md运行 helm-unittest 全绿后提交 PR等 CI 的 lint 多版本 install 通过跟着这份清单走你的第一个 Jenkins Helm Chart PR 就能平稳通过 CI 检查。祝合并愉快 【免费下载链接】helm-chartsJenkins helm charts项目地址: https://gitcode.com/gh_mirrors/helmcharts16/helm-charts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表