From f32d9b90a4330df5a0dc6a7537592b945f4c4f0e Mon Sep 17 00:00:00 2001 From: Matt Lehman Date: Mon, 9 Feb 2026 23:15:57 -0500 Subject: [PATCH] Use fly.toml app name and improve Fly auth errors --- .github/workflows/fly-deploy.yml | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/fly-deploy.yml b/.github/workflows/fly-deploy.yml index 4f4b922..af5a0ee 100644 --- a/.github/workflows/fly-deploy.yml +++ b/.github/workflows/fly-deploy.yml @@ -44,7 +44,7 @@ jobs: fi APP_FROM_CONFIG="$(sed -n 's/^app = \"\\(.*\\)\"/\\1/p' fly.toml | head -n1)" - APP_NAME="${FLY_APP_NAME:-${APP_FROM_CONFIG}}" + APP_NAME="${APP_FROM_CONFIG:-${FLY_APP_NAME}}" PRIMARY_REGION="${FLY_PRIMARY_REGION:-ord}" VOLUME_NAME="${FLY_VOLUME_NAME:-yappybara_data}" VOLUME_SIZE_GB="${FLY_VOLUME_SIZE_GB:-1}" @@ -55,18 +55,20 @@ jobs: exit 1 fi - # Recover from stale repo variable values by falling back to fly.toml app. - if ! flyctl apps info --app "${APP_NAME}" > /dev/null 2>&1 \ - && [ -n "${APP_FROM_CONFIG}" ] \ - && [ "${APP_FROM_CONFIG}" != "${APP_NAME}" ] \ - && flyctl apps info --app "${APP_FROM_CONFIG}" > /dev/null 2>&1; then - echo "Configured FLY_APP_NAME '${APP_NAME}' not found; using fly.toml app '${APP_FROM_CONFIG}'." - APP_NAME="${APP_FROM_CONFIG}" + if [ -n "${APP_FROM_CONFIG}" ] && [ -n "${FLY_APP_NAME}" ] && [ "${APP_FROM_CONFIG}" != "${FLY_APP_NAME}" ]; then + echo "Ignoring stale FLY_APP_NAME='${FLY_APP_NAME}' and using fly.toml app '${APP_FROM_CONFIG}'." fi - if ! flyctl apps info --app "${APP_NAME}" > /dev/null 2>&1; then - echo "Fly app ${APP_NAME} does not exist yet. Creating it now..." - flyctl apps create "${APP_NAME}" + APP_INFO_OUTPUT="$(flyctl apps info --app "${APP_NAME}" 2>&1 || true)" + if ! echo "${APP_INFO_OUTPUT}" | grep -q "Hostname"; then + if echo "${APP_INFO_OUTPUT}" | grep -qi "app not found"; then + echo "Fly app ${APP_NAME} does not exist yet. Creating it now..." + flyctl apps create "${APP_NAME}" + else + echo "${APP_INFO_OUTPUT}" + echo "Unable to access Fly app '${APP_NAME}'. Check that FLY_API_TOKEN has deploy access to this app." + exit 1 + fi fi if ! flyctl volumes list --app "${APP_NAME}" | grep -q "${VOLUME_NAME}"; then