You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ja...@apache.org on 2026/10/24 01:16:15 UTC
(solr-operator) branch main updated: Fix chart version extraction in the OCI publish workflow (#858)
This is an automated email from the ASF dual-hosted git repository.
janhoy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr-operator.git
The following commit(s) were added to refs/heads/main by this push:
new 2dde4ae Fix chart version extraction in the OCI publish workflow (#858)
2dde4ae is described below
commit 2dde4ae2452d52451d1275ca8926bf75d12fbb77
Author: Jan Høydahl <ja...@apache.org>
AuthorDate: Sat Oct 24 03:16:08 2026 +0200
Fix chart version extraction in the OCI publish workflow (#858)
---
.github/workflows/publish-helm-oci.yaml | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/publish-helm-oci.yaml b/.github/workflows/publish-helm-oci.yaml
index de095d2..bd1b675 100644
--- a/.github/workflows/publish-helm-oci.yaml
+++ b/.github/workflows/publish-helm-oci.yaml
@@ -171,8 +171,29 @@ jobs:
SOLR_CHART_FILE: ${{ steps.inputs.outputs.solr-chart-file }}
run: |
set -euo pipefail
- OPERATOR_VERSION="$(tar -xzOf "${OPERATOR_CHART_FILE}" solr-operator/Chart.yaml | awk '$1 == "version:" {print $2; exit}')"
- SOLR_VERSION="$(tar -xzOf "${SOLR_CHART_FILE}" solr/Chart.yaml | awk '$1 == "version:" {print $2; exit}')"
+
+ # The match must be anchored to column 0. awk strips leading whitespace when it
+ # splits fields, so '$1 == "version:"' also matches the indented version keys in
+ # the artifacthub.io/crds annotation and in dependencies - and the solr-operator
+ # chart has four of those before the real chart version.
+ chart_version() {
+ tar -xzOf "$1" "$2/Chart.yaml" | awk '/^version:/ {gsub(/"/, "", $2); print $2; exit}'
+ }
+
+ OPERATOR_VERSION="$(chart_version "${OPERATOR_CHART_FILE}" solr-operator)"
+ SOLR_VERSION="$(chart_version "${SOLR_CHART_FILE}" solr)"
+
+ # The byte-comparison further down assumes 'helm pull' writes <chart>-<version>.tgz,
+ # i.e. exactly the released filename. Assert it here so a bad extraction fails with
+ # a clear message instead of surfacing as a confusing error three steps later.
+ for pair in "solr-operator:${OPERATOR_VERSION}:${OPERATOR_CHART_FILE}" \
+ "solr:${SOLR_VERSION}:${SOLR_CHART_FILE}"; do
+ IFS=: read -r name version file <<< "${pair}"
+ if [[ "${file}" != "${name}-${version}.tgz" ]]; then
+ echo "Error: ${name} chart version '${version}' does not match filename '${file}'" >&2
+ exit 1
+ fi
+ done
echo "operator-version=${OPERATOR_VERSION}" >> "$GITHUB_OUTPUT"
echo "solr-version=${SOLR_VERSION}" >> "$GITHUB_OUTPUT"