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 と組み合わせて使用されます。