PageSourceSearch

https://helm.sh/assets/js/6042109e.fe576828.js

js helm.sh collected 2026-09-24 07:27:00 UTC 7,017 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkhelm_www=self.webpackChunkhelm_www||[]).push([["29063"],{45488(e,t,n){n.r(t),n.d(t,{metadata:()=>r,default:()=>d,frontMatter:()=>o,contentTitle:()=>h,toc:()=>c,assets:()=>i});var r=JSON.parse('{"id":"howto/chart_releaser_action","title":"Chart Releaser Action to Automate GitHub Page Charts","description":"Describe how to use Chart Releaser Action to automate releasing charts through GitHub pages.","source":"@site/docs/howto/chart_releaser_action.md","sourceDirName":"howto","slug":"/howto/chart_releaser_action","permalink":"/docs/howto/chart_releaser_action","draft":false,"unlisted":false,"editUrl":"https://github.com/helm/helm-www/blob/main/docs/howto/chart_releaser_action.md","tags":[],"version":"current","sidebarPosition":3,"frontMatter":{"title":"Chart Releaser Action to Automate GitHub Page Charts","description":"Describe how to use Chart Releaser Action to automate releasing charts through GitHub pages.","sidebar_position":3},"sidebar":"tutorialSidebar","previous":{"title":"Syncing Your Chart Repository","permalink":"/docs/howto/chart_repository_sync_example"},"next":{"title":"Topics","permalink":"/docs/topics/"}}'),a=n(74848),s=n(28453);let o={title:"Chart Releaser Action to Automate GitHub Page Charts",description:"Describe how to use Chart Releaser Action to automate releasing charts through GitHub pages.",sidebar_position:3},h,i={},c=[{value:"Repository Changes",id:"repository-changes",level:2},{value:"GitHub Actions Workflow",id:"github-actions-workflow",level:2}];function l(e){let t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.p,{children:["This guide describes how to use ",(0,a.jsx)(t.a,{href:"https://github.com/marketplace/actions/helm-chart-releaser",children:"Chart Releaser\nAction"})," to automate\nreleasing charts through GitHub pages.  Chart Releaser Action is a GitHub Action\nworkflow to turn a GitHub project into a self-hosted Helm chart repo, using\n",(0,a.jsx)(t.a,{href:"https://github.com/helm/chart-releaser",children:"helm/chart-releaser"})," CLI tool."]}),"\n",(0,a.jsx)(t.h2,{id:"repository-changes",children:"Repository Changes"}),"\n",(0,a.jsxs)(t.p,{children:["Create a Git repository under your GitHub organization.  You could give the name\nof the repository as ",(0,a.jsx)(t.code,{children:"helm-charts"}),", though other names are also acceptable.  The\nsources of all the charts can be placed under the ",(0,a.jsx)(t.code,{children:"main"})," branch.  The charts\nshould be placed under ",(0,a.jsx)(t.code,{children:"/charts"})," directory at the top-level of the directory\ntree."]}),"\n",(0,a.jsxs)(t.p,{children:["There should be another branch named ",(0,a.jsx)(t.code,{children:"gh-pages"})," to publish the charts.  The\nchanges to that branch will be automatically created by the Chart Releaser\nAction described here.  However, you can create that ",(0,a.jsx)(t.code,{children:"gh-branch"})," and add\n",(0,a.jsx)(t.code,{children:"README.md"})," file, which is going to be visible to the users visiting the page."]}),"\n",(0,a.jsxs)(t.p,{children:["You can add instruction in the ",(0,a.jsx)(t.code,{children:"README.md"})," for charts installation like this\n(replace ",(0,a.jsx)(t.code,{children:"<alias>"}),", ",(0,a.jsx)(t.code,{children:"<orgname>"}),", and ",(0,a.jsx)(t.code,{children:"<chart-name>"}),"):"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{children:"## Usage\n\n[Helm](https://helm.sh) must be installed to use the charts.  Please refer to\nHelm's [documentation](https://helm.sh/docs) to get started.\n\nOnce Helm has been set up correctly, add the repo as follows:\n\n  helm repo add <alias> https://<orgname>.github.io/helm-charts\n\nIf you had already added this repo earlier, run `helm repo update` to retrieve\nthe latest versions of the packages.  You can then run `helm search repo\n<alias>` to see the charts.\n\nTo install the <chart-name> chart:\n\n    helm install my-<chart-name> <alias>/<chart-name>\n\nTo uninstall the chart:\n\n    helm uninstall my-<chart-name>\n"})}),"\n",(0,a.jsx)(t.p,{children:"The charts will be published to a website with URL like this:"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{children:"https://<orgname>.github.io/helm-charts\n"})}),"\n",(0,a.jsx)(t.h2,{id:"github-actions-workflow",children:"GitHub Actions Workflow"}),"\n",(0,a.jsxs)(t.p,{children:["Create GitHub Actions workflow file in the ",(0,a.jsx)(t.code,{children:"main"})," branch at\n",(0,a.jsx)(t.code,{children:".github/workflows/release.yml"})]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{children:'name: Release Charts\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  release:\n    permissions:\n      contents: write\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v4\n        with:\n          fetch-depth: 0\n\n      - name: Configure Git\n        run: |\n          git config user.name "$GITHUB_ACTOR"\n          git config user.email "[email protected]"\n\n      - name: Run chart-releaser\n        uses: helm/chart-releaser
1[email protected]\n        env:\n          CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"\n'})}),"\n",(0,a.jsxs)(t.p,{children:["The above configuration uses\n",(0,a.jsx)(t.a,{href:"https://github.com/helm/chart-releaser-action",children:"@helm/chart-releaser-action"})," to\nturn your GitHub project into a self-hosted Helm chart repo.  It does this -\nduring every push to main - by checking each chart in your project, and whenever\nthere's a new chart version, creates a corresponding GitHub release named for\nthe chart version, adds Helm chart artifacts to the release, and creates or\nupdates an ",(0,a.jsx)(t.code,{children:"index.yaml"})," file with metadata about those releases, which is then\nhosted on GitHub pages."]}),"\n",(0,a.jsxs)(t.p,{children:["The Chart Releaser Action version number used in the above example is ",(0,a.jsx)(t.code,{children:"v1.6.0"}),".\nYou can change it to the ",(0,a.jsx)(t.a,{href:"https://github.com/helm/chart-releaser-action/releases",children:"latest available\nversion"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:["Note: The Chart Releaser Action is almost always used in tandem with the ",(0,a.jsx)(t.a,{href:"https://github.com/marketplace/actions/helm-chart-testing",children:"Helm Testing\nAction"})," and ",(0,a.jsx)(t.a,{href:"https://github.com/marketplace/actions/kind-cluster",children:"Kind\nAction"}),"."]})]})}function d(e={}){let{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},28453(e,t,n){n.d(t,{R:()=>o,x:()=>h});var r=n(96540);let a={},s=r.createContext(a);function o(e){let t=r.useContext(s);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function h(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.