diff --git a/.github/workflows/release-chart.yaml b/.github/workflows/release-chart.yaml new file mode 100644 index 00000000..804e476f --- /dev/null +++ b/.github/workflows/release-chart.yaml @@ -0,0 +1,30 @@ +# Publish chart as OCI image to GitHub registry. Version is automatically gathered from the tag name. +# For this workflow to work, GITHUB_TOKEN needs to be configured with write permissions. +# Additionally, the repository must be granted access in the package settings. + +name: Publish chart + +on: + release: + types: [ released ] + +jobs: + release: + name: Publish chart to OCI registry + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Helm login + run: | + echo "${{ secrets.GITHUB_TOKEN }}" | \ + helm registry login ghcr.io \ + --username "$GITHUB_REPOSITORY_OWNER" \ + --password-stdin + - name: Helm package + run: | + helm package . -u --version "${GITHUB_REF_NAME#v}" + - name: Helm push + run: | + helm push \ + "mastodon-${GITHUB_REF_NAME#v}.tgz" \ + "oci://ghcr.io/$GITHUB_REPOSITORY_OWNER/charts" diff --git a/Chart.yaml b/Chart.yaml index 91c33d29..3e3cd9c7 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -12,10 +12,10 @@ description: Mastodon is a free, open-source social network server based on Acti # pipeline. Library charts do not define any templates and therefore cannot be deployed. type: application -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 4.1.2 +# Chart version is set to 0.0.0 in the source tree. The release pipeline replaces this with the version +# being released in build time. +# Please refer to git tags and/or GitHub releases to check out the latest version. +version: 0.0.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/README.md b/README.md index a595a4d4..a5ba57a7 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,23 @@ Kubernetes cluster. The basic usage is: This chart is tested with k8s 1.21+ and helm 3.6.0+. +# Installation + +This chart is [released as an OCI image](https://helm.sh/docs/topics/registries/) to `ghcr.io/mastodon/charts/mastodon`. You can install it without the need to add any repository to your helm installation using: + +```shell +helm install mastodon oci://ghcr.io/mastodon/charts/mastodon --values your-values-file.yaml +``` + +You can also add it as a dependency to another chart in your Chart.yaml: + +```yaml +dependencies: + - name: mastodon + version: 4.0.0 + repository: oci://ghcr.io/mastodon/charts +``` + # Configuration The variables that _must_ be configured are: