fix(ci): count the kubeconfig's clusters correctly
Build and Push Image / Unit tests (push) Successful in 52s
Build and Push Image / Build and push image (push) Skipped
Build and Push Image / Deploy to the cluster (push) Skipped

The cluster-count guard I added used `grep -c '"name"'`, which counts
LINES.  The jsonpath output is a single line, so the count was 1 for a
kubeconfig with clusters and 1 for one without - which made the guard
reject every kubeconfig:

    ERROR: the kubeconfig has no cluster entries.

The count is now done with `grep -o . | wc -l`, which counts occurrences
rather than lines.  Tested against both cases:

- a real kubeconfig with a stale CA -> the CA is refreshed and kubectl works
- a kubeconfig with no clusters        -> refuses with a clear message
This commit is contained in:
2026-11-09 12:21:07 +10:00
parent 3e20b558a5
commit 7364734713
+4 -2
View File
@@ -56,8 +56,10 @@ if [ -z "$EXPECTED" ]; then
fi fi
# Guard against a kubeconfig with no clusters, or an empty one. # Guard against a kubeconfig with no clusters, or an empty one.
CLUSTER_COUNT=$(kubectl config view --raw -o jsonpath='{.clusters}' 2>/dev/null \ # `grep -c` counts LINES, and the jsonpath output is a single line, so the
| grep -c '"name"' || true) # count is done with grep -o and wc -l instead.
CLUSTER_COUNT=$(kubectl config view --raw -o jsonpath='{.clusters[*].name}' 2>/dev/null \
| grep -o . | wc -l || true)
if [ "${CLUSTER_COUNT:-0}" -eq 0 ]; then if [ "${CLUSTER_COUNT:-0}" -eq 0 ]; then
echo "ERROR: the kubeconfig has no cluster entries." >&2 echo "ERROR: the kubeconfig has no cluster entries." >&2
echo " The KUBEC_CONFIG_BUILDX_NEW_2 secret looks wrong or empty." >&2 echo " The KUBEC_CONFIG_BUILDX_NEW_2 secret looks wrong or empty." >&2