From 1f5346a0fab214aa65fb1e0a3eff1425ba1c7f36 Mon Sep 17 00:00:00 2001 From: Conan Scott Date: Fri, 21 Nov 2025 11:53:06 +0800 Subject: [PATCH] added helm publish action --- .gitea/workflows/publish-helm.yaml | 57 ++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .gitea/workflows/publish-helm.yaml diff --git a/.gitea/workflows/publish-helm.yaml b/.gitea/workflows/publish-helm.yaml new file mode 100644 index 0000000..dfbf9e2 --- /dev/null +++ b/.gitea/workflows/publish-helm.yaml @@ -0,0 +1,57 @@ +name: Helm Publish + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Helm + run: | + set -euo pipefail + curl -sSL https://get.helm.sh/helm-v3.15.0-linux-amd64.tar.gz -o /tmp/helm.tgz + tar xzf /tmp/helm.tgz -C /tmp + install /tmp/linux-amd64/helm /usr/local/bin/helm + + - name: Install helm cm-push plugin + run: | + set -euo pipefail + helm plugin install https://github.com/chartmuseum/helm-push + + - name: Lint and package chart + run: | + set -euo pipefail + helm lint . + helm dependency update . || true + helm package . -d /tmp + + - name: Push chart to Gitea Helm registry + env: + HELM_REPO_URL: "https://gitea.apilab.us/api/packages/cscott/helm" + HELM_REPO_NAME: "gitea-helm" + HELM_USER: "cscott" + HELM_PASSWORD: "${{ secrets.HELM_PASSWORD }}" + run: | + set -euo pipefail + helm repo add "$HELM_REPO_NAME" "$HELM_REPO_URL" \ + --username "$HELM_USER" \ + --password "$HELM_PASSWORD" + + NAME="$(grep '^name:' Chart.yaml | awk '{print $2}')" + YAML_VERSION="$(grep '^version:' Chart.yaml | awk '{print $2}')" + CHART_TGZ="/tmp/${NAME}-${YAML_VERSION}.tgz" + if [ ! -f "$CHART_TGZ" ]; then + echo "Expected packaged chart not found: $CHART_TGZ" + ls -l /tmp + exit 1 + fi + + helm cm-push "$CHART_TGZ" "$HELM_REPO_NAME"