You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2020/02/28 07:28:19 UTC

[camel-k] 08/09: Fix #1305: fix case of transitive equality between images

This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 15f6d0ed90b09bbfd814d6e05dbe3044e176f215
Author: Nicola Ferraro <ni...@gmail.com>
AuthorDate: Fri Feb 28 00:10:38 2020 +0100

    Fix #1305: fix case of transitive equality between images
---
 pkg/builder/spectrum/publisher.go | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/pkg/builder/spectrum/publisher.go b/pkg/builder/spectrum/publisher.go
index 4aaf59c..5b834f7 100644
--- a/pkg/builder/spectrum/publisher.go
+++ b/pkg/builder/spectrum/publisher.go
@@ -19,14 +19,28 @@ package spectrum
 
 import (
 	"fmt"
+	"os"
 	"path"
 
 	"github.com/apache/camel-k/pkg/builder"
 	"github.com/apache/camel-k/pkg/platform"
+	"github.com/apache/camel-k/pkg/util/log"
 	spectrum "github.com/container-tools/spectrum/pkg/builder"
 )
 
 func publisher(ctx *builder.Context) error {
+	libraryPath := path.Join(ctx.Path, "context", "dependencies")
+	_, err := os.Stat(libraryPath)
+	if err != nil && os.IsNotExist(err) {
+		// this can only indicate that there are no more libraries to add to the base image,
+		// because transitive resolution is the same even if spec differs
+		log.Infof("No new image to build, reusing existing image %s", ctx.BaseImage)
+		ctx.Image = ctx.BaseImage
+		return nil
+	} else if err != nil {
+		return err
+	}
+
 	pl, err := platform.GetCurrentPlatform(ctx.C, ctx, ctx.Namespace)
 	if err != nil {
 		return err
@@ -57,7 +71,7 @@ func publisher(ctx *builder.Context) error {
 		PushInsecure: pl.Status.Build.Registry.Insecure,
 	}
 
-	digest, err := spectrum.Build(options, path.Join(ctx.Path, "context", "dependencies")+":/deployments/dependencies")
+	digest, err := spectrum.Build(options, libraryPath+":/deployments/dependencies")
 	if err != nil {
 		return err
 	}