From 1f2b62b41b3f93b5560ae651afbcd77b14dd430a Mon Sep 17 00:00:00 2001 From: Dan Bornstein Date: Wed, 31 May 2023 13:20:12 -0700 Subject: [PATCH] Add check for IPv6. --- .../lib/milky-cloud/instance/wait-until-responsive | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/lib/milky-cloud/instance/wait-until-responsive b/scripts/lib/milky-cloud/instance/wait-until-responsive index 6148315..575c0c8 100755 --- a/scripts/lib/milky-cloud/instance/wait-until-responsive +++ b/scripts/lib/milky-cloud/instance/wait-until-responsive @@ -57,6 +57,16 @@ process-args "$@" || usage --short # Helper functions # +# Does the machine running this script seem to have IPv6? This cursed function +# is needed because, as of this writing, GitHub Actions does not run user code +# on machines that have IPv6. Blurgh! +# +# See . +function is-ipv6-available { + # `-c 1` == one packet + ping6 >/dev/null 2>&1 -c 1 google.com +} + # Waits for just one instance to be in state `running`. function wait-for-one-running { local infoJson="$1" @@ -154,6 +164,10 @@ function wait-for-one-ssh { # Don't bother re-checking the key; just care if we got one. if [[ ${gotKey} == '' ]]; then "${msg}" 'ssh unreachable via IPv6' + if ! is-ipv6-available; then + "${msg}" '(but IPv6 is not available at all here)' + return + fi return 1 fi