chart-releaser-action 自定义打包指南:用 skip_packaging 实现高级 Helm 打包策略

发布时间:2026/10/6 7:03:20

chart-releaser-action 自定义打包指南:用 skip_packaging 实现高级 Helm 打包策略 chart-releaser-action 自定义打包指南用 skip_packaging 实现高级 Helm 打包策略【免费下载链接】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 是一个能把任意 GitHub 项目一键变成自托管 Helm chart 仓库的 GitHub Action它基于 helm/chart-releaser CLI 工具自动完成发现变更 → 打包 → 发布 Release → 更新 index.yaml的完整链路。但当你需要更高级的 Helm 打包策略——比如自定义 Chart 版本号、打包前动态改写配置、对包做签名校验——默认流程就显得力不从心。此时只需开启 chart-releaser-action 的skip_packaging参数就能跳过内置打包步骤用你自己的方式完成打包再由 Action 接管发布与索引更新。本文将以新手也能看懂的方式带你全面掌握skip_packaging的用法。一、chart-releaser-action 默认打包流程快速回顾 在聊自定义打包之前先花 30 秒回顾默认流程。chart-releaser-action 的核心逻辑写在 cr.sh 中大致分为四步发现变更对比上一个 tag找出charts目录下有改动的 Chart打包调用cr package生成.tgz包发布调用cr upload为每个新版本创建 GitHub Release更新索引调用cr index生成并推送index.yaml到gh-pages分支整个 Action 支持以下常用输入参数参数作用默认值versionchart-releaser 工具版本v1.7.0charts_dirChart 所在目录chartsskip_packaging跳过内置打包步骤空skip_existing已存在的 Release 跳过上传空skip_upload跳过上传适合 OCI 仓库空mark_as_latest是否标记为 latest Releasetruepackages_with_index将包直接推入发布分支falsepages_branchindex 与产物推送的分支gh-pages默认流程适合大多数场景但它的打包动作是黑盒——你无法干预helm package的具体参数。二、为什么需要自定义打包默认流程的三大局限 默认流程的打包步骤在 cr.sh 中由cr package完成灵活性有限无法传递helm package的高级参数例如自定义--app-version、指定--keyring签名等打包前无法修改 Chart 内容想在打包前把镜像 tag 换成当前 commit、动态生成 Chart.yaml默认流程做不到无法做签名与多架构处理企业级分发通常需要对 Chart 包签名或按平台产出不同版本开启skip_packaging后Action 只负责发布和更新索引两件事打包完全交给你这正是实现高级 Helm 打包策略的关键。三、skip_packaging 一键启用方法 ⚙️启用方式非常简单只需在 workflow 中加一行配置- name: Run chart-releaser uses: helm/chart-releaser-actionv1.7.0 with: skip_packaging: true env: CR_TOKEN: ${{ secrets.GITHUB_TOKEN }}从 action.yml 的源码可以看到该参数最终会转换成 chart-releaser 的--skip-packaging选项。启用后cr.sh 会跳过查 tag、找变更、打包的整套逻辑直接进入发布与索引更新阶段。四、4 种高级 Helm 打包策略实战 下面给出 4 个高频实战场景均以自定义打包 skip_packaging组合实现。策略一用 helm package 精确控制版本号默认打包无法单独指定--app-version自定义后可以完全掌控mkdir -p .cr-release-packages helm package charts/my-app \ --version 2.1.0 \ --app-version 2.1.0 \ --destination .cr-release-packages关键点chart-releaser 默认从.cr-release-packages目录读取.tgz包务必把产物输出到这里。策略二打包前动态修改 Chart 配置最常见的需求是把镜像 tag 注入到 Chart 中让每次发版都对应唯一 commitmkdir -p .cr-release-packages sed -i s|tag: latest|tag: $GITHUB_SHA|g charts/my-app/values.yaml helm package charts/my-app --destination .cr-release-packages策略三为 Chart 包添加签名校验面向企业分发时签名是信任链的重要一环mkdir -p .cr-release-packages helm package charts/my-app \ --sign \ --key your-gpg-key-id \ --keyring ~/.gnupg/secring.gpg \ --destination .cr-release-packages策略四搭配 skip_upload 走向 OCI 仓库如果使用 OCI 类型的仓库不需要index.yaml可以同时开启两个参数skip_packaging负责跳过内置打包skip_upload负责跳过上传实现只打包、不上传的完全自定义流程。五、自定义打包完整工作流示例 把上面的策略组装成一个可直接使用的完整 workflowname: Release Charts on: push: branches: [ main ] jobs: release: runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout uses: actions/checkoutv4 with: fetch-depth: 0 - name: Configure Git run: | git config user.name $GITHUB_ACTOR git config user.email $GITHUB_ACTORusers.noreply.github.com - name: Install Helm uses: azure/setup-helmv4 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Custom Packaging run: | mkdir -p .cr-release-packages for chart in charts/*/; do helm package $chart --destination .cr-release-packages done - name: Run chart-releaser uses: helm/chart-releaser-actionv1.7.0 with: skip_packaging: true env: CR_TOKEN: ${{ secrets.GITHUB_TOKEN }}本地想要先跑通全流程可以先把仓库 clone 到本地git clone https://gitcode.com/gh_mirrors/ch/chart-releaser-action参考其中的 cr.sh 与 action.yml 逐步验证。六、使用 skip_packaging 的 5 个注意事项 ⚠️产物目录要对打包产物必须输出到.cr-release-packages否则cr upload找不到包版本号要一致.tgz的文件名必须与 Chart.yaml 中的version对应否则发布校验失败输出变量会失效changed_charts输出在skip_packaging模式下不会被设置如需记录变更需自行处理记得安装 Helm自定义打包依赖helm命令workflow 中要先用azure/setup-helm安装Git 身份要配置发布与更新索引需要 git 用户信息别忘了在打包前配置user.name和user.email七、总结 ✨skip_packaging是 chart-releaser-action 中最值得掌握的进阶参数之一。它把打包这个环节的主动权交还给你而发布 Release、生成index.yaml、推送到 GitHub Pages 等繁琐工作仍由 Action 自动完成。无论是精确控制版本、动态注入配置还是签名分发都能在不放弃自动化便利的前提下实现更高级的 Helm 打包策略。赶快在你的下一个 Helm 仓库项目中试试吧【免费下载链接】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),仅供参考
延伸阅读

更多相关文章

2026/10/3 21:51:38

基于STM32与ESP32的智能遥控车:从传感器融合到实时控制

1. 项目缘起:从“遥控车”到“RC Car 2026”的跨越 最近在整理工作室,翻出来几台尘封已久的遥控车,有小时候玩的几十块钱的玩具,也有后来入坑买的几百块的“高级货”。看着它们,我突然在想,这么多年过去了&…

2026/10/6 15:51:02

从零制作行走机器人:Arduino与舵机驱动的四足机器人实践指南

1. 项目概述与核心思路拆解“如何制作一个行走机器人”,这个标题听起来像是一个宏大的工程,但别被吓到。本质上,它就是一个将电子、机械和编程知识融合在一起的动手实践项目,核心目标是让一个机械结构能够自主、稳定地在地面上移动…

2026/10/1 13:40:50

App Framework部署实战:3条命令零停机发布到Firebase Hosting

App Framework部署实战:3条命令零停机发布到Firebase Hosting 【免费下载链接】app-framework Applications for any device with HTML, CSS and JavaScript - free and open source! 项目地址: https://gitcode.com/gh_mirrors/ap/app-framework App Framew…

2026/10/7 1:30:05

Modelsim仿真本质:从X/Z态红线到四阶段验证流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:30:05

FastDFS大文件上传:秒传、断点续传与Redis文件锁实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:30:05

国密USB Key开发实战:SKF库调用全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:30:05

STM32F103C8T6嵌入式入门核心原理与实战避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:30:05

AD18中PCB模块Copy的正确方法与ROOM机制解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:25:04

版图工具链三支柱:PDK、DRC/LVS、寄生提取深度解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑