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).
This commit is contained in:
Sebastian Seedorf
2026-05-19 18:26:42 +02:00
parent de4c48d0bf
commit a8c19073a3

View File

@@ -21,50 +21,44 @@ inputs:
runs: runs:
using: composite using: composite
steps: steps:
- name: Install Helm
shell: bash
run: |
curl -fsSL https://get.helm.sh/helm-v3.14.4-linux-amd64.tar.gz \
| tar xz -C /tmp
mv /tmp/linux-amd64/helm /usr/local/bin/helm
helm version --short
- name: Inject image tag into chart values - name: Inject image tag into chart values
shell: bash shell: bash
run: | run: |
CHART_PATH=${{ inputs.chart-path }}
sed -i "s|^\(\s*tag:\).*|\1 ${{ inputs.app-version }}|" \ sed -i "s|^\(\s*tag:\).*|\1 ${{ inputs.app-version }}|" \
${{ inputs.chart-path }}/values.yaml "$CHART_PATH/values.yaml"
- name: Package helm chart (SHA) - name: Package and push helm chart (SHA)
shell: bash shell: bash
run: | run: |
helm package ${{ inputs.chart-path }} \ CHART_PATH=${{ inputs.chart-path }}
--version "${{ inputs.version }}" \ CHART_NAME=$(basename "$CHART_PATH")
--app-version "${{ inputs.app-version }}" 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" .
- name: Push helm chart (SHA) to Gitea
shell: bash
run: |
CHART_NAME=$(basename ${{ inputs.chart-path }})
curl -u ${{ inputs.username }}:${{ inputs.password }} \ curl -u ${{ inputs.username }}:${{ inputs.password }} \
-X POST \ -X POST \
https://git.sebse.de/api/packages/sebse/helm/api/charts \ https://git.sebse.de/api/packages/sebse/helm/api/charts \
-F "chart=@${CHART_NAME}-${{ inputs.version }}.tgz" \ -F "chart=@${CHART_NAME}-${VERSION}.tgz" \
--fail-with-body --fail-with-body
- name: Package helm chart (latest) - name: Package and push helm chart (latest)
shell: bash shell: bash
run: | run: |
sed -i "s|^\(\s*tag:\).*|\1 ${{ inputs.app-version }}|" \ CHART_PATH=${{ inputs.chart-path }}
${{ inputs.chart-path }}/values.yaml CHART_NAME=$(basename "$CHART_PATH")
helm package ${{ inputs.chart-path }} \ APP_VERSION=${{ inputs.app-version }}
--version "0.0.0-latest" \
--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" .
- name: Push helm chart (latest) to Gitea
shell: bash
run: |
CHART_NAME=$(basename ${{ inputs.chart-path }})
curl -u ${{ inputs.username }}:${{ inputs.password }} \ curl -u ${{ inputs.username }}:${{ inputs.password }} \
-X POST \ -X POST \
https://git.sebse.de/api/packages/sebse/helm/api/charts \ https://git.sebse.de/api/packages/sebse/helm/api/charts \