Skip to content

release: pin to v0.1.1 #5

release: pin to v0.1.1

release: pin to v0.1.1 #5

Workflow file for this run

name: Publish Helm Chart
on:
pull_request:
push:
branches:
- main
tags:
- "v*"
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
validate-chart:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: azure/setup-helm@v4
- name: Lint chart
run: helm lint ./helm/mdns-controller
- name: Package chart
run: |
mkdir -p ./dist
helm package ./helm/mdns-controller --destination ./dist
publish-chart:
if: github.event_name == 'workflow_dispatch' || startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
needs: validate-chart
steps:
- uses: actions/checkout@v4
- uses: azure/setup-helm@v4
- name: Resolve chart metadata
id: chart
env:
REF_NAME: ${{ github.ref_name }}
run: |
set -euo pipefail
chart_name="$(awk '/^name:/{print $2; exit}' ./helm/mdns-controller/Chart.yaml)"
chart_version="$(awk '/^version:/{print $2; exit}' ./helm/mdns-controller/Chart.yaml)"
if [[ "${REF_NAME}" == v* ]]; then
tag_version="${REF_NAME#v}"
if [[ "${chart_version}" != "${tag_version}" ]]; then
echo "Chart version ${chart_version} does not match git tag ${tag_version}" >&2
exit 1
fi
fi
echo "name=${chart_name}" >> "${GITHUB_OUTPUT}"
echo "version=${chart_version}" >> "${GITHUB_OUTPUT}"
- name: Package chart
run: |
mkdir -p ./dist
helm package ./helm/mdns-controller --destination ./dist
- name: Log in to GHCR
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "${GITHUB_TOKEN}" | helm registry login ghcr.io \
--username "${{ github.actor }}" \
--password-stdin
- name: Push chart to GHCR
env:
CHART_NAME: ${{ steps.chart.outputs.name }}
CHART_VERSION: ${{ steps.chart.outputs.version }}
run: |
helm push "./dist/${CHART_NAME}-${CHART_VERSION}.tgz" "oci://ghcr.io/${GITHUB_REPOSITORY_OWNER,,}/charts"