From 3ab51faa92bd604bed83dca0bb334f9cea60a866 Mon Sep 17 00:00:00 2001 From: kevinwang5658 Date: Mon, 7 Sep 2026 22:13:17 -0400 Subject: [PATCH 1/2] fix: debug why goenv is not uninstalled --- .../verify-destroyed.sh | 32 ++++++++++++++++--- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/.github/daily-integration-test/verify-destroyed.sh b/.github/daily-integration-test/verify-destroyed.sh index 363c9c6c..d1a342d4 100755 --- a/.github/daily-integration-test/verify-destroyed.sh +++ b/.github/daily-integration-test/verify-destroyed.sh @@ -1,14 +1,36 @@ #!/bin/bash -set -euo pipefail +set -uo pipefail + +fail=0 if [ -d "$HOME/.nvm" ]; then echo "FAIL: ~/.nvm still exists after destroy" >&2 - exit 1 + ls -la "$HOME/.nvm" >&2 + fail=1 +fi + +if [ -d "$HOME/.goenv" ]; then + echo "FAIL: ~/.goenv directory still exists after destroy" >&2 + ls -laR "$HOME/.goenv" >&2 + fail=1 fi -if [ -d "$HOME/.goenv" ] || command -v goenv >/dev/null 2>&1; then - echo "FAIL: goenv still present after destroy" >&2 - exit 1 +if command -v goenv >/dev/null 2>&1; then + echo "FAIL: 'goenv' is still resolvable after destroy" >&2 + echo " command -v goenv -> $(command -v goenv)" >&2 + echo " type goenv -> $(type goenv 2>&1 | head -3)" >&2 + echo " PATH -> $PATH" >&2 + IFS=: read -ra _dirs <<< "$PATH" + for _d in "${_dirs[@]}"; do + [ -e "$_d/goenv" ] && echo " on PATH: $_d/goenv" >&2 + done + if command -v brew >/dev/null 2>&1; then + brew list --formula 2>/dev/null | grep -x goenv >/dev/null \ + && echo " brew still lists the goenv formula" >&2 + fi + fail=1 fi +[ "$fail" -ne 0 ] && exit 1 + echo "nvm and goenv confirmed removed." From 79d6df8909a9da345aa66dc7340592f9146f7acf Mon Sep 17 00:00:00 2001 From: kevinwang5658 Date: Mon, 7 Sep 2026 22:25:11 -0400 Subject: [PATCH 2/2] fix: go verify uninstallation to be less strict because of github actions limitations --- .../daily-integration-test/verify-destroyed.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/daily-integration-test/verify-destroyed.sh b/.github/daily-integration-test/verify-destroyed.sh index d1a342d4..b17eb028 100755 --- a/.github/daily-integration-test/verify-destroyed.sh +++ b/.github/daily-integration-test/verify-destroyed.sh @@ -9,17 +9,21 @@ if [ -d "$HOME/.nvm" ]; then fail=1 fi -if [ -d "$HOME/.goenv" ]; then - echo "FAIL: ~/.goenv directory still exists after destroy" >&2 - ls -laR "$HOME/.goenv" >&2 - fail=1 -fi +# Check for goenv itself, not for $GOENV_ROOT as a whole. On the macOS runner the Go module +# cache lives at $GOENV_ROOT/shared/go-mod and is repopulated by Go tooling after the destroy, +# so the bare directory existing says nothing about whether goenv is still installed. +for leftover in "$HOME/.goenv/bin" "$HOME/.goenv/shims" "$HOME/.goenv/versions"; do + if [ -d "$leftover" ]; then + echo "FAIL: $leftover still exists after destroy" >&2 + ls -la "$leftover" >&2 + fail=1 + fi +done if command -v goenv >/dev/null 2>&1; then echo "FAIL: 'goenv' is still resolvable after destroy" >&2 echo " command -v goenv -> $(command -v goenv)" >&2 echo " type goenv -> $(type goenv 2>&1 | head -3)" >&2 - echo " PATH -> $PATH" >&2 IFS=: read -ra _dirs <<< "$PATH" for _d in "${_dirs[@]}"; do [ -e "$_d/goenv" ] && echo " on PATH: $_d/goenv" >&2