fix(e2e): use ${VAR:-} syntax to avoid unbound variable errors

The previous diagnostic step used $KUBECONFIG and $HOME directly,
which causes 'unbound variable' exit when run with set -euo pipefail
and KUBECONFIG is unset. Use ${VAR:-} defaults throughout.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-05-05 20:36:15 +00:00
committed by Hugh Hackman [agent]
parent 48947ce2c6
commit 30f8c92a09
+11 -11
View File
@@ -49,14 +49,14 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
echo "=== Runner environment diagnostic ===" echo "=== Runner environment diagnostic ==="
echo "HOME=$HOME" echo "HOME=${HOME:-}"
echo "KUBECONFIG=$KUBECONFIG" echo "KUBECONFIG=${KUBECONFIG:-}"
echo "ACTIONS_KUBECONFIG=$ACTIONS_KUBECONFIG" echo "ACTIONS_KUBECONFIG=${ACTIONS_KUBECONFIG:-}"
echo "RUNNER_CONFIG=$RUNNER_CONFIG" echo "RUNNER_CONFIG=${RUNNER_CONFIG:-}"
echo "RUNNER_CONFIG_DIR=$RUNNER_CONFIG_DIR" echo "RUNNER_CONFIG_DIR=${RUNNER_CONFIG_DIR:-}"
echo "" echo ""
echo "=== Checking known kubeconfig locations ===" echo "=== Checking known kubeconfig locations ==="
for path in /runner/config /home/runner/.kube/config "$HOME/.kube/config" "$HOME/.kube"; do for path in /runner/config /home/runner/.kube/config "${HOME:-}/.kube/config" "${HOME:-}/.kube"; do
if [ -f "$path" ]; then if [ -f "$path" ]; then
echo "FOUND kubeconfig at: $path" echo "FOUND kubeconfig at: $path"
elif [ -d "$path" ]; then elif [ -d "$path" ]; then
@@ -70,14 +70,14 @@ jobs:
echo "=== In-cluster service account check ===" echo "=== In-cluster service account check ==="
if [ -f /var/run/secrets/kubernetes.io/serviceaccount/token ]; then if [ -f /var/run/secrets/kubernetes.io/serviceaccount/token ]; then
echo "Service account token present — in-cluster mode available" echo "Service account token present — in-cluster mode available"
echo "KUBERNETES_SERVICE_HOST=$KUBERNETES_SERVICE_HOST" echo "KUBERNETES_SERVICE_HOST=${KUBERNETES_SERVICE_HOST:-}"
echo "KUBERNETES_SERVICE_PORT=$KUBERNETES_SERVICE_PORT" echo "KUBERNETES_SERVICE_PORT=${KUBERNETES_SERVICE_PORT:-}"
else else
echo "No service account token at /var/run/secrets/kubernetes.io/serviceaccount/" echo "No service account token at /var/run/secrets/kubernetes.io/serviceaccount/"
fi fi
echo "" echo ""
echo "=== Attempting kubeconfig from in-cluster env ===" echo "=== Attempting kubeconfig from in-cluster env ==="
if [ -n "$KUBERNETES_SERVICE_HOST" ]; then if [ -n "${KUBERNETES_SERVICE_HOST:-}" ]; then
echo "In-cluster: yes" echo "In-cluster: yes"
kubectl config view --raw 2>&1 | head -5 || echo "kubectl config view failed" kubectl config view --raw 2>&1 | head -5 || echo "kubectl config view failed"
else else
@@ -90,8 +90,8 @@ jobs:
elif [ -f /home/runner/.kube/config ]; then elif [ -f /home/runner/.kube/config ]; then
echo "KUBECONFIG=/home/runner/.kube/config" >> "$GITHUB_ENV" echo "KUBECONFIG=/home/runner/.kube/config" >> "$GITHUB_ENV"
echo "Using kubeconfig from /home/runner/.kube/config" echo "Using kubeconfig from /home/runner/.kube/config"
elif [ -f "$HOME/.kube/config" ]; then elif [ -f "${HOME:-}/.kube/config" ]; then
echo "KUBECONFIG=$HOME/.kube/config" >> "$GITHUB_ENV" echo "KUBECONFIG=${HOME:-}/.kube/config" >> "$GITHUB_ENV"
echo "Using kubeconfig from HOME" echo "Using kubeconfig from HOME"
else else
echo "::error::No kubeconfig found in /runner/config, /home/runner/.kube/config, or HOME" echo "::error::No kubeconfig found in /runner/config, /home/runner/.kube/config, or HOME"