From 23268a0e9251df9db89f6fc31979fb5c7b8c74bd Mon Sep 17 00:00:00 2001 From: p4u1 Date: Fri, 13 Feb 2026 11:24:22 +0100 Subject: [PATCH] fix: Does not crash when an image has no tag --- pkg/deploy/utils.go | 16 ++++++++++++++-- tests/integration/app_deploy.bats | 13 +++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/pkg/deploy/utils.go b/pkg/deploy/utils.go index 99c730f3..284e2bc1 100644 --- a/pkg/deploy/utils.go +++ b/pkg/deploy/utils.go @@ -165,7 +165,13 @@ func GetImagesForStack(cl *dockerClient.Client, app appPkg.App) (map[string]stri } imageBaseName := reference.Path(imageParsed) - imageTag := imageParsed.(reference.NamedTagged).Tag() + namedTag, ok := imageParsed.(reference.NamedTagged) + if !ok { + // This is an image without a tag + images[imageBaseName] = "" + continue + } + imageTag := namedTag.Tag() existingImageVersion, ok := images[imageBaseName] if !ok { @@ -282,7 +288,13 @@ func GatherImagesForDeploy(cl *dockerClient.Client, app appPkg.App, compose *com } imageBaseName := reference.Path(imageParsed) - imageTag := imageParsed.(reference.NamedTagged).Tag() + namedTag, ok := imageParsed.(reference.NamedTagged) + if !ok { + // This is an image without a tag + newImages[imageBaseName] = "" + continue + } + imageTag := namedTag.Tag() existingImageVersion, ok := newImages[imageBaseName] if !ok { diff --git a/tests/integration/app_deploy.bats b/tests/integration/app_deploy.bats index 7e172a2e..fbbeb5ab 100644 --- a/tests/integration/app_deploy.bats +++ b/tests/integration/app_deploy.bats @@ -623,3 +623,16 @@ teardown(){ assert_output --partial "tcp=1312" assert_output --partial "udp=1312" } + +# bats test_tags=slow +@test "does not crash when docker image has no tag" { + run sed -i 's/TYPE=abra-test-recipe:.*/TYPE=git.coopcloud.tech\/p4u1\/abra-test-recipe:b29422d5a344ea45df271443182f775ea82b4da8/g' \ + "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" + assert_success + + run bash -c "printf '\nCOMPOSE_FILE=\"\$COMPOSE_FILE:compose.no-image-tag.yml\"' >> $ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" + assert_success + + run $ABRA app deploy "$TEST_APP_DOMAIN" --no-input + assert_success +} -- 2.49.0