From 22f1ff73485aa0bfc26729bd9f1d9e9b1b9e36c2 Mon Sep 17 00:00:00 2001 From: Eric Wang Date: Thu, 12 Mar 2026 00:51:11 -0700 Subject: [PATCH] fix(installer): respect custom docker tags - let install.sh combine DEVA_DOCKER_IMAGE with DEVA_DOCKER_TAG - stop the smoke workflow from handing deva a double-tagged image name - keep custom local smoke images usable without registry pulls --- .github/workflows/ci.yml | 3 ++- install.sh | 42 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6057ed4..f54c3dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,7 +79,8 @@ jobs: export HOME="$(mktemp -d)" export PATH="$HOME/.local/bin:$PATH" export DEVA_INSTALL_BASE_URL="file://$PWD" - export DEVA_DOCKER_IMAGE="deva-smoke:ci" + export DEVA_DOCKER_IMAGE="deva-smoke" + export DEVA_DOCKER_TAG="ci" export DEVA_DOCKER_IMAGE_FALLBACK="" export DEVA_NO_DOCKER=1 diff --git a/install.sh b/install.sh index f11e862..2f65a0a 100644 --- a/install.sh +++ b/install.sh @@ -4,8 +4,6 @@ set -euo pipefail DEVA_LAUNCHER="deva.sh" LEGACY_WRAPPER="claude.sh" YOLO_WRAPPER="claude-yolo" -DOCKER_IMAGE="${DEVA_DOCKER_IMAGE:-ghcr.io/thevibeworks/deva:latest}" -DOCKER_IMAGE_FALLBACK="${DEVA_DOCKER_IMAGE_FALLBACK:-thevibeworks/deva:latest}" INSTALL_BASE_URL="${DEVA_INSTALL_BASE_URL:-https://raw.githubusercontent.com/thevibeworks/deva/main}" agent_files=( @@ -15,6 +13,46 @@ agent_files=( "shared_auth.sh" ) +image_ref() { + local repo="$1" + local tag="${2:-}" + local default_tag="$3" + local tail="${repo##*/}" + + if [[ "$repo" == *@* ]]; then + printf '%s' "$repo" + return + fi + + if [ -n "$tag" ]; then + printf '%s:%s' "$repo" "$tag" + return + fi + + if [[ "$tail" == *:* ]]; then + printf '%s' "$repo" + return + fi + + printf '%s:%s' "$repo" "$default_tag" +} + +if [ -n "${DEVA_DOCKER_IMAGE+x}" ]; then + DOCKER_IMAGE="$(image_ref "$DEVA_DOCKER_IMAGE" "${DEVA_DOCKER_TAG:-}" "latest")" +else + DOCKER_IMAGE="$(image_ref "ghcr.io/thevibeworks/deva" "${DEVA_DOCKER_TAG:-}" "latest")" +fi + +if [ -n "${DEVA_DOCKER_IMAGE_FALLBACK+x}" ]; then + if [ -n "$DEVA_DOCKER_IMAGE_FALLBACK" ]; then + DOCKER_IMAGE_FALLBACK="$(image_ref "$DEVA_DOCKER_IMAGE_FALLBACK" "${DEVA_DOCKER_IMAGE_FALLBACK_TAG:-${DEVA_DOCKER_TAG:-}}" "latest")" + else + DOCKER_IMAGE_FALLBACK="" + fi +else + DOCKER_IMAGE_FALLBACK="$(image_ref "thevibeworks/deva" "${DEVA_DOCKER_IMAGE_FALLBACK_TAG:-${DEVA_DOCKER_TAG:-}}" "latest")" +fi + echo "deva installer" echo "==============" echo ""