Skip to content
name: Helm Chart Release
on:
workflow_dispatch:
pull_request:
push:
permissions:
contents: read
defaults:
run:
shell: bash
jobs:
chart:
name: Publish charts
runs-on: mirror-node-linux-medium
permissions:
contents: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
- name: Checkout Code
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: PWD
run: pwd
- name: List directory
run: ls -ltr
- name: list chart directory
run: ls -ltr chart
- name: Setup Helm
uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0
with:
version: "v3.12.3" # helm version
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Helm package
run: |
helm repo add stable https://charts.helm.sh/stable
helm repo update
helm package chart
# show tgz file content without uncompress
tar -tvf chart*.tgz
- name: list tgz files
run: ls -ltr *.tgz
- name: Helm publish
run: |
export CHART_VERSION=$(grep 'version:' ./chart/Chart.yaml | tail -n1 | awk '{ print $2}')
owner="${GITHUB_REPOSITORY_OWNER,,}"
# push to ghcr.io
helm push chart*-${CHART_VERSION}.tgz oci://ghcr.io/$owner