ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

chart-releaser-action 版本演进路线图:从 v1.0 到 v1.7.0 的功能升级全记录

chart-releaser-action 版本演进路线图:从 v1.0 到 v1.7.0 的功能升级全记录 chart-releaser-action 版本演进路线图从 v1.0 到 v1.7.0 的功能升级全记录【免费下载链接】chart-releaser-actionA GitHub Action to turn a GitHub project into a self-hosted Helm chart repo, using helm/chart-releaser CLI tool项目地址: https://gitcode.com/gh_mirrors/ch/chart-releaser-actionchart-releaser-action 是一款由 Helm 社区维护的 GitHub Action核心功能是把任意 GitHub 项目一键变成自托管的 Helm chart 仓库它会在每次推送时自动打包 charts、创建 GitHub Release并生成由 GitHub Pages 托管的index.yaml索引。无论你是 Helm 新手还是正在搭建内部仓库的运维理解 chart-releaser-action 的版本演进路线图都能帮你选对版本、用对参数。本文为你完整梳理从 v1.0 到 v1.7.0 的功能升级全记录。一、chart-releaser-action 是做什么的简单来说它借助 helm/chart-releaser CLI 工具下文简称cr把一条发布 Helm chart的流水线压缩成一个 action 步骤。你只需在.github/workflows里写好 workflow推送到main分支它就会自动完成发现变更对比最近一次 tag找出charts目录下真正变化的 chart打包用helm package生成.tgz包发布为每个新版本创建 GitHub Release 并上传制品建索引在gh-pages分支生成并推送index.yaml供helm repo add使用。整个流程的核心逻辑集中在 cr.sh 这一个 bash 脚本中而所有输入输出参数都在 action.yml 里定义入门阅读 README.md 即可。二、从 0 到 1v1.0 时代是如何起步的2.1 早期原型alpha / rc 阶段项目最早可以追溯到 2019 年底先后经历了v1.0.0-alpha.1、alpha.2、rc.1、rc.2四个预发布版本。这一阶段重点解决两个基础问题一是自动识别仓库中哪些目录是真正的 chart通过校验Chart.yaml是否存在二是为已删除的 chart 跳过打包避免发布失败。此时 action 内部还带有一个用于逻辑处理的main.js技术栈相对传统。2.2 正式版 v1.0.02020 年 8 月v1.0.0 跟随 chart-releaser CLI 1.0.0 正式发布并同步把 action 自身标记为 1.0 稳定版确认了基于crCLI bash 脚本的总体形态同时移除了早期对自定义 PAT 的依赖改用内置的GITHUB_TOKEN。可以说从这一版起chart-releaser-action 的核心工作流发现变更 → 打包 → 发版 → 更新索引基本定型。三、架构大升级v1.1.0 的关键转折v1.1.02020 年 11 月是一次内部结构的重大重构action 从 JavaScript action 全面转换为composite action删除了main.js并改用RUNNER_TOOL_CACHE作为cr工具的缓存目录。带来的实际好处是安装cr工具可以命中 CI 缓存每次运行更快不再依赖 Node.js 运行时维护成本显著降低脚本更透明出了问题可以直接阅读 cr.sh 排查。对普通用户来说这次升级无需改动任何配置属于无感升级但它为后续所有功能迭代打下了基础。四、稳步小步快跑v1.2.x 与 v1.3.0v1.2.0 / v1.2.1跟随 chart-releaser CLI 升级到 1.2.x同时修复了charts_dir为.时chart_depth计算异常的问题并补充了缺失的config选项文档。v1.3.02022 年 2 月cr升级到 1.3.0并修复了缓存目录始终加入PATH的小问题。这一阶段没有新增面向用户的开关更多是跟随上游、修修补补但稳定性和兼容性在持续提升。五、功能爆发期v1.4.x 带来三大实用能力从 v1.4.0 开始chart-releaser-action 进入功能快速迭代期5.1 skip_packaging自定义打包成为可能通过skip_packaging参数你可以跳过 action 自带的打包步骤先用自己的方式例如helm package加签名完成打包再交给 action 处理索引和发布。这为需要 chart 签名、或使用 OCI 等高级打包流程的团队打开了大门。5.2 支持 Tag 触发的工作流修复了一个重要问题当 workflow 由 tag 触发时原来的lookup_latest_tag会返回触发当前任务的 tag导致永远检测不到 chart 变更。修复后 action 会跳过当前被 tag 标记的 commit让 tag 触发也能正常发布。5.3 mark_as_latest控制 Release 的 latest 标记新增mark_as_latest参数设为false时创建的 GitHub Release 不会被打上 latest 标签适合维护多个稳定渠道如stable/beta的发布场景。六、迈向现代化v1.5.0 到 v1.6.06.1 v1.5.0跟随上游 清理历史包袱v1.5.02023 年 1 月将cr默认版本提升到 1.5.0并正式移除了已废弃的charts_repo_url输入。如果你还在用老配置升级时需要特别留意charts_repo_url已被完全删除请改用config配置文件来指定仓库归属。6.2 v1.6.0面向 CI 自动化的输入输出大扩充v1.6.0 是功能密度最高的一个版本一口气加入了多个高频参数参数作用skip_existingRelease/tag 已存在时跳过上传避免重复发布packages_with_index将 chart 包直接上传到发布分支适合不需要 Release 的纯静态仓库pages_branch自定义索引与制品的推送分支默认gh-pageschanged_charts输出本次实际发布的 chart 列表逗号分隔供下游步骤做条件判断chart_version输出最近一次生成的 chart 版本号其中changed_charts和chart_version两个outputs让 CI 具备了感知变化的能力——例如你可以据此在无变更时跳过通知步骤或动态拼接版本号。输出写入逻辑见 action.yml。七、最新稳定版v1.6.1 与 v1.7.0v1.6.1cr升级到 1.6.1并修复了packages_with_index的标志传递问题同时引入 dependabot 自动依赖更新v1.7.02025 年 1 月当前最新稳定版cr工具升级到 1.7.0并补充了skip_upload参数——跳过索引上传专为 OCI 仓库等不需要index.yaml的场景设计。截至目前version输入的默认值就是v1.7.0见 action.yml新用户直接uses: helm/chart-releaser-actionv1.7.0即可享受全部能力。八、v1.7.0 完整参数速查表为了让新手快速上手这里汇总 v1.7.0 的全部输入参数输入参数默认值一句话说明versionv1.7.0使用的cr工具版本config无cr的配置文件路径charts_dirchartscharts 目录位置install_dir/install_only自动控制cr安装位置 / 仅安装不执行skip_packaging空跳过打包自定义打包后交给 action 发布skip_existing空已存在则跳过上传skip_upload空跳过索引上传OCI 场景mark_as_latesttrue是否标记为 latest Releasepackages_with_indexfalse包直接推入发布分支pages_branchgh-pages索引与制品推送分支必填环境变量只有CR_TOKEN推荐使用${{ secrets.GITHUB_TOKEN }}。最小可用 workflow 非常简单一个release.yml即可具体示例可直接参考 README.md。九、版本选择建议新手刚起步直接用最新v1.7.0默认配置开箱即用已在用 v1.5 之前版本注意charts_repo_url已被移除升级后需要改用config文件需要签名 / OCI 发布务必开启skip_packaging或skip_upload想精细控制 CI 流程善用changed_charts/chart_version输出做条件分支。十、小结从 2019 年的 alpha 原型到 2025 年的 v1.7.0chart-releaser-action 用一次次的版本迭代把把 GitHub 项目变成 Helm chart 仓库这件事打磨得越来越顺手架构上从 JS action 蜕变为轻量 composite action功能上从打包发布逐步扩展到自定义打包、OCI、静态索引等高级场景。理解了这条版本演进路线图你就能根据自身需求精准选版、平滑升级把 Helm chart 的发布流程彻底自动化 【免费下载链接】chart-releaser-actionA GitHub Action to turn a GitHub project into a self-hosted Helm chart repo, using helm/chart-releaser CLI tool项目地址: https://gitcode.com/gh_mirrors/ch/chart-releaser-action创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表