Skip to content

Update kubeconfig-generator (#279) #73

Update kubeconfig-generator (#279)

Update kubeconfig-generator (#279) #73

Workflow file for this run

name: Package Helm Chart and publish to GitHub Packages
on:
workflow_dispatch: {}
push:
branches:
- main
paths:
- .github/workflows/helm-release.yaml
- alerts/charts/**
- cert-manager/charts/v1.11.0/cert-manager/**
- exposed-services/charts/v1.0.0/exposed-service/**
- exposed-services/charts/v2.0.0/exposed-service/**
- kube-monitoring/charts/**
- kubeconfig-generator/chart/**
- logshipper/chart/**
- obenbao/charts/**
- opentelemetry/chart/**
- plutono/charts/**
- service-proxy/charts/1.0.0/service-proxy/**
- thanos/charts/**
permissions:
contents: write
packages: write
env:
REGISTRY: ghcr.io
ACTIONS_RUNNER_DEBUG: false
jobs:
helm-release:
runs-on: [ default ]
strategy:
fail-fast: false
matrix:
include:
- chartDir: alerts/charts
chartName: alerts
- chartDir: cert-manager/charts/v1.11.0/cert-manager
chartName: cert-manager
- chartDir: exposed-services/charts/v1.0.0/exposed-service
chartName: exposed-services
- chartDir: exposed-services/charts/v2.0.0/exposed-service
chartName: exposed-services
- chartDir: kube-monitoring/charts
chartName: kube-monitoring
- chartDir: kubeconfig-generator/chart
chartName: kubeconfig-generator
- chartDir: logshipper/chart
chartName: logshipper
- chartDir: openbao/charts/openbao
chartName: openbao
- chartDir: opentelemetry/chart
chartName: opentelemetry-operator
- chartDir: plutono/charts
chartName: plutono
- chartDir: service-proxy/charts/1.0.0/service-proxy
chartName: service-proxy
- chartDir: thanos/charts
chartName: thanos
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Set up Helm
uses: azure/[email protected]
- uses: actions/setup-python@v5
with:
python-version: 3.9
check-latest: true
token: ${{ secrets.GITHUB_TOKEN }}
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v44
with:
files: |
${{ matrix.chartDir }}/**
- name: Check if Helm chart with same version already exists
id: check-chart
if: steps.changed-files.outputs.all_changed_files != ''
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
# List all changed
echo "All changed files: $ALL_CHANGED_FILES"
chartName=$(yq .name "${{ matrix.chartDir }}/Chart.yaml")
chartVersion=$(yq .version "${{ matrix.chartDir }}/Chart.yaml")
echo "chart_version=${chartVersion}" >> "$GITHUB_OUTPUT"
if $(helm pull "oci://${{ env.REGISTRY }}/${{ github.repository }}/charts/${{ matrix.chartName }}" --version $chartVersion); then
echo "bump=true" >> "$GITHUB_OUTPUT"
fi
- name: Chart needs version bump
if: steps.check-chart.outputs.bump == 'true'
env:
CHART_VERSION: ${{ steps.check-chart.outputs.chart_version }}
run: |
echo "Chart ${{ matrix.chartDir }}:${{ env.CHART_VERSION }} already exists in OCI registry. Skipping upload. Please increment the chart version."
exit 1
- name: Push Charts to GHCR
if: steps.changed-files.outputs.all_changed_files != '' && steps.check-chart.outputs.bump != 'true'
run: |
helm package ${{ matrix.chartDir }} -d ${{ matrix.chartDir }}
PKG_NAME=`ls ${{ matrix.chartDir }}/*.tgz`
helm push ${PKG_NAME} oci://${{ env.REGISTRY }}/${{ github.repository }}/charts/