name: "Override chart dependencies" description: "Overrides the dependencies for a Helm chart" inputs: chart: required: true description: "Which chart to override the dependencies for" overrides: required: true description: "A JSON encoded list of dependency overrides" runs: using: "composite" steps: - name: Override dependencies shell: bash run: | overrides=( $(yq --null-input e -o=j -I=0 '${{ inputs.overrides }}[]' ) ) chartFile="charts/${{ matrix.chart }}/Chart.yaml" if [[ ! -f ${chartFile} ]]; then echo "Could not find ${chartFile}"! exit 1 fi for override in "${overrides[@]}"; do name=$(echo "$override" | yq e '.name' -) repository=$(echo "$override" | yq e '.repository' -) version=$(echo "$override" | yq e '.version' -) yq -i "(.dependencies[] | select(.name == \"$name\").repository) |= \"$repository\"" "${chartFile}" yq -i "(.dependencies[] | select(.name == \"$name\").version) |= \"$version\"" "${chartFile}" done echo "Resulting chart:" cat ${chartFile}