Files
actions/.gitea/workflows/publish-helm.yaml
2025-11-21 11:42:33 +08:00

58 lines
1.6 KiB
YAML

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"