Repository navigation
Initial mdns controller migration #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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" | |