From 2c7c38993c1b82451354c940ce9061fd4c4c1e2c Mon Sep 17 00:00:00 2001 From: action-runner Date: Fri, 24 Oct 2025 12:14:54 +0000 Subject: [PATCH] action run testing-36 --- action.yaml | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 action.yaml diff --git a/action.yaml b/action.yaml new file mode 100644 index 0000000..f736328 --- /dev/null +++ b/action.yaml @@ -0,0 +1,74 @@ +name: "update helm release" +description: "deploy helm release with new image" + +inputs: + release_name: + required: true + + image_paths: + required: false + default: "image.tag" # NOTE space separated + + namespace: + required: false + default: "" + + image_tag: + required: false + default: "" + + repository_location: + required: false + default: "europe-docker.pkg.dev/puzzle-and-play/helm" + + timeout: + required: false + default: "5m" + +runs: + using: composite + steps: + - shell: bash + env: + RELEASE_NAME: "${{ inputs.release_name }}" + NAMESPACE: "${{ inputs.namespace }}" + REPOSITORY_LOCATION: "${{ inputs.repository_location }}" + HELM_CHARTS_DIR: "$HOME/.cache/helm/charts" + IMAGE_PATHS: "${{ inputs.image_paths }}" + IMAGE_TAG: "${{ inputs.image_tag }}" + HELM_UPGRADE_TIMEOUT: "${{ inputs.timeout }}" + + run: | + : ${NAMESPACE:="$RELEASE_NAME"} + : ${IMAGE_TAG:="${{ github.ref_name }}-${{ github.run_number }}"} + + history=$(\ + helm history $RELEASE_NAME -n $NAMESPACE --max 1 -o json \ + | jq ".[].chart | split(\"-\")" \ + ) + chart_name=$(echo $history | jq ".[0]" -r) + chart_version=$(echo $history | jq ".[1]" -r) + + HELM_CHARTS_DIR=$(echo "$HELM_CHARTS_DIR" | envsubst) + mkdir -p "$HELM_CHARTS_DIR" + helm pull \ + "oci://$REPOSITORY_LOCATION/$chart_name" \ + --version "$chart_version" \ + -d "$HELM_CHARTS_DIR" + + chart_filename="${HELM_CHARTS_DIR}/${chart_name}-${chart_version}.tgz" + + value_overrides=$(\ + echo "\"$IMAGE_PATHS\"" \ + | jq -r '. | split(" ") | map(. + "=$IMAGE_TAG") | join(",")' \ + | envsubst \ + ) + + helm upgrade \ + "$RELEASE_NAME" \ + "$chart_filename" \ + --version "$chart_version" \ + --namespace "$NAMESPACE" \ + --reuse-values \ + --set "$value_overrides" \ + --timeout "$HELM_UPGRADE_TIMEOUT"