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