Files
actions/helm-package-push/action.yml
Sebastian Seedorf a8c19073a3 Remove helm binary dependency from helm-package-push
Replace 'helm package' with sed on Chart.yaml + tar czf.
No external tool needed beyond coreutils (sed, tar, curl).
2026-05-19 18:26:42 +02:00

67 lines
2.2 KiB
YAML

name: Helm Package and Push
description: Inject image tag, package helm chart and push to git.sebse.de helm registry
inputs:
chart-path:
description: Path to helm chart directory, e.g. web/charts/my-app
required: true
version:
description: Helm chart version, e.g. 0.0.0-abc1234
required: true
app-version:
description: App version / image tag, e.g. abc1234
required: true
username:
description: Registry username
required: true
password:
description: Registry password or token
required: true
runs:
using: composite
steps:
- name: Inject image tag into chart values
shell: bash
run: |
CHART_PATH=${{ inputs.chart-path }}
sed -i "s|^\(\s*tag:\).*|\1 ${{ inputs.app-version }}|" \
"$CHART_PATH/values.yaml"
- name: Package and push helm chart (SHA)
shell: bash
run: |
CHART_PATH=${{ inputs.chart-path }}
CHART_NAME=$(basename "$CHART_PATH")
VERSION=${{ inputs.version }}
APP_VERSION=${{ inputs.app-version }}
sed -i "s/^version:.*/version: $VERSION/" "$CHART_PATH/Chart.yaml"
sed -i "s/^appVersion:.*/appVersion: \"$APP_VERSION\"/" "$CHART_PATH/Chart.yaml"
tar czf "${CHART_NAME}-${VERSION}.tgz" -C "$CHART_PATH" .
curl -u ${{ inputs.username }}:${{ inputs.password }} \
-X POST \
https://git.sebse.de/api/packages/sebse/helm/api/charts \
-F "chart=@${CHART_NAME}-${VERSION}.tgz" \
--fail-with-body
- name: Package and push helm chart (latest)
shell: bash
run: |
CHART_PATH=${{ inputs.chart-path }}
CHART_NAME=$(basename "$CHART_PATH")
APP_VERSION=${{ inputs.app-version }}
sed -i "s/^version:.*/version: 0.0.0-latest/" "$CHART_PATH/Chart.yaml"
sed -i "s/^appVersion:.*/appVersion: \"$APP_VERSION\"/" "$CHART_PATH/Chart.yaml"
tar czf "${CHART_NAME}-0.0.0-latest.tgz" -C "$CHART_PATH" .
curl -u ${{ inputs.username }}:${{ inputs.password }} \
-X POST \
https://git.sebse.de/api/packages/sebse/helm/api/charts \
-F "chart=@${CHART_NAME}-0.0.0-latest.tgz" \
--fail-with-body