GitHub Pages でチャートを自動公開するための Chart Releaser Action

このガイドでは、Chart Releaser Action を使用して GitHub Pages を介したチャートのリリースを自動化する方法について説明します。Chart Releaser Action は、helm/chart-releaser CLI ツールを使用して、GitHub プロジェクトをセルフホスト型の Helm チャートリポジトリに変換する GitHub Actions ワークフローです。

リポジトリの変更

GitHub 組織下に Git リポジトリを作成します。リポジトリの名前は `helm-charts` にすることができますが、他の名前も使用できます。すべてのチャートのソースは `main` ブランチに配置できます。チャートはディレクトリツリーのトップレベルにある `/charts` ディレクトリに配置する必要があります。

チャートを公開するための `gh-pages` という名前の別のブランチが必要です。そのブランチへの変更は、ここで説明する Chart Releaser Action によって自動的に作成されます。ただし、`gh-branch` を作成し、ページにアクセスするユーザーに表示される `README.md` ファイルを追加することもできます。

`README.md` にチャートのインストール手順を次のように追加できます(`<alias>`、`<orgname>`、`<chart-name>` を置き換えます)。

## Usage

[Helm](https://helm.dokyumento.jp) must be installed to use the charts.  Please refer to
Helm's [documentation](https://helm.dokyumento.jp/docs) to get started.

Once Helm has been set up correctly, add the repo as follows:

  helm repo add <alias> https://<orgname>.github.io/helm-charts

If you had already added this repo earlier, run `helm repo update` to retrieve
the latest versions of the packages.  You can then run `helm search repo
<alias>` to see the charts.

To install the <chart-name> chart:

    helm install my-<chart-name> <alias>/<chart-name>

To uninstall the chart:

    helm delete my-<chart-name>

チャートは次のような URL のウェブサイトに公開されます

https://<orgname>.github.io/helm-charts

GitHub Actions ワークフロー

`main` ブランチの `.github/workflows/release.yml` に GitHub Actions ワークフローファイルを作成します。

name: Release Charts

on:
  push:
    branches:
      - main

jobs:
  release:
    permissions:
      contents: write
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Configure Git
        run: |
          git config user.name "$GITHUB_ACTOR"
          git config user.email "$GITHUB_ACTOR@users.noreply.github.com"

      - name: Run chart-releaser
        uses: helm/chart-releaser-action@v1.6.0
        env:
          CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

上記の構成では、@helm/chart-releaser-action を使用して、GitHub プロジェクトをセルフホスト型の Helm チャートリポジトリに変換します。これは、main へのプッシュごとに、プロジェクト内の各チャートをチェックし、新しいチャートバージョンがある場合は、チャートバージョンに対応する GitHub リリースを作成し、リリースに Helm チャートアーティファクトを追加し、それらのリリースに関するメタデータを含む `index.yaml` ファイルを作成または更新することで行われます。これは GitHub Pages でホストされます。

上記の例で使用されている Chart Releaser Action のバージョン番号は `v1.6.0` です。最新バージョンに変更できます。

注: Chart Releaser Action は、ほとんどの場合、Helm Testing Action および Kind Action と組み合わせて使用​​されます。