name: Helm OCI Chart Releaser description: Push Helm charts to OCI-based (Docker) registries author: sergeyshaykhullin branding: color: yellow icon: upload-cloud inputs: name: required: true description: Chart name repository: required: true description: Chart repository name tag: required: true description: Chart version app_version: required: true description: App version path: required: false description: Chart path (Default 'charts/{name}') registry: required: true description: OCI registry registry_username: required: true description: OCI registry username registry_password: required: true description: OCI registry password update_dependencies: required: false default: 'false' description: Update chart dependencies before packaging (Default 'false') outputs: image: value: ${{ steps.output.outputs.image }} description: Chart image (Default '{registry}/{repository}/{image}:{tag}') runs: using: composite steps: - name: Helm | Login shell: bash run: echo ${{ inputs.registry_password }} | helm registry login -u ${{ inputs.registry_username }} --password-stdin ${{ inputs.registry }} env: HELM_EXPERIMENTAL_OCI: '1' - name: Helm | Dependency if: inputs.update_dependencies == 'true' shell: bash run: helm dependency update ${{ inputs.path == null && format('{0}/{1}', 'charts', inputs.name) || inputs.path }} env: HELM_EXPERIMENTAL_OCI: '1' - name: Helm | Package shell: bash run: helm package ${{ inputs.path == null && format('{0}/{1}', 'charts', inputs.name) || inputs.path }} --version ${{ inputs.tag }} --app-version ${{ inputs.app_version }} env: HELM_EXPERIMENTAL_OCI: '1' - name: Helm | Push shell: bash run: helm push ${{ inputs.name }}-${{ inputs.tag }}.tgz oci://${{ inputs.registry }}/${{ inputs.repository }} env: HELM_EXPERIMENTAL_OCI: '1' - name: Helm | Logout shell: bash run: helm registry logout ${{ inputs.registry }} env: HELM_EXPERIMENTAL_OCI: '1' - name: Helm | Output id: output shell: bash run: echo "image=${{ inputs.registry }}/${{ inputs.repository }}/${{ inputs.name }}:${{ inputs.tag }}" >> $GITHUB_OUTPUT