name: Helm Upgrade description: Login to an OCI registry, update chart dependencies, and run helm upgrade inputs: DEPLOYMENT_NAME: description: "The Helm release name" required: true DEPLOYMENT_NAMESPACE: description: "The Kubernetes namespace (defaults to DEPLOYMENT_NAME)" default: "" REGISTRY: description: "OCI registry hostname for helm dependency login" required: true REGISTRY_USERNAME: description: "Username for OCI registry login" required: true REGISTRY_TOKEN: description: "Token for OCI registry login" required: true CHART_PATH: description: "Path to the Helm chart" default: "./helm" VALUES_FILE: description: "The values file to use" default: "./helm/values.yaml" IMAGE_PATH: description: "The registry path to the image (optional)" default: "" IMAGE_TAG: description: "The image tag to deploy (optional)" default: "" TAG_KEY: description: "Helm --set key for the image tag (e.g. deploy.api.tag)" default: "" runs: using: composite steps: - name: Helm OCI Login shell: sh run: | echo "${{ inputs.REGISTRY_TOKEN }}" | helm registry login ${{ inputs.REGISTRY }} \ --username ${{ inputs.REGISTRY_USERNAME }} \ --password-stdin - name: Helm Upgrade shell: sh run: | NAMESPACE="${{ inputs.DEPLOYMENT_NAMESPACE }}" if [ -z "$NAMESPACE" ]; then NAMESPACE="${{ inputs.DEPLOYMENT_NAME }}"; fi SET_FLAGS="" if [ -n "${{ inputs.TAG_KEY }}" ] && [ -n "${{ inputs.IMAGE_TAG }}" ]; then SET_FLAGS="$SET_FLAGS --set ${{ inputs.TAG_KEY }}=${{ inputs.IMAGE_TAG }}" fi if [ -n "${{ inputs.IMAGE_PATH }}" ]; then SET_FLAGS="$SET_FLAGS --set image.repository=${{ inputs.IMAGE_PATH }}" fi helm dependency update ${{ inputs.CHART_PATH }} echo "Running: helm upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${NAMESPACE} --values ${{ inputs.VALUES_FILE }}${SET_FLAGS}" helm upgrade ${{ inputs.DEPLOYMENT_NAME }} ${{ inputs.CHART_PATH }} -n ${NAMESPACE} --values ${{ inputs.VALUES_FILE }} $SET_FLAGS - name: Remove kubeconfig if: always() shell: sh run: rm -f ~/.kube/config