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

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


The following commit(s) were added to refs/heads/master by this push:
     new 8fed404  builder: wake up event loop when the container image buils is 
done to seep up deployment time
8fed404 is described below

commit 8fed4047b388a5331bd83d9b318a053eaba17e95
Author: lburgazzoli <lburgazz...@gmail.com>
AuthorDate: Fri Dec 7 10:54:55 2018 +0100

    builder: wake up event loop when the container image buils is done to seep 
up deployment time
---
 pkg/builder/builder_steps.go               | 42 ++++++++++++++++++++++++++----
 pkg/builder/kaniko/kaniko.go               |  2 +-
 pkg/builder/s2i/s2i.go                     |  2 +-
 pkg/stub/action/context/build.go           |  2 +-
 pkg/stub/action/integration/build_image.go |  2 +-
 pkg/trait/builder.go                       |  2 ++
 6 files changed, 43 insertions(+), 9 deletions(-)

diff --git a/pkg/builder/builder_steps.go b/pkg/builder/builder_steps.go
index a32502e..bc14032 100644
--- a/pkg/builder/builder_steps.go
+++ b/pkg/builder/builder_steps.go
@@ -364,9 +364,9 @@ func FindBestImage(images []PublishedImage, dependencies 
[]string, artifacts []v
        return bestImage, bestImageCommonLibs
 }
 
-// Notify --
-func Notify(ctx *Context) error {
-       c := v1alpha1.IntegrationContext{
+// NotifyIntegrationContext --
+func NotifyIntegrationContext(ctx *Context) error {
+       target := v1alpha1.IntegrationContext{
                TypeMeta: metav1.TypeMeta{
                        Kind:       v1alpha1.IntegrationContextKind,
                        APIVersion: v1alpha1.SchemeGroupVersion.String(),
@@ -377,11 +377,43 @@ func Notify(ctx *Context) error {
                },
        }
 
-       if err := sdk.Get(&c); err != nil {
+       if err := sdk.Get(&target); err != nil {
                return err
        }
 
-       t := c.DeepCopy()
+       t := target.DeepCopy()
+       if t.Annotations == nil {
+               t.Annotations = make(map[string]string)
+       }
+
+       // Add a random ID to trigger update
+       t.Annotations["camel.apache.org/build.id"] = xid.New().String()
+
+       if err := sdk.Update(t); err != nil {
+               return err
+       }
+
+       return nil
+}
+
+// NotifyIntegration --
+func NotifyIntegration(ctx *Context) error {
+       target := v1alpha1.Integration{
+               TypeMeta: metav1.TypeMeta{
+                       Kind:       v1alpha1.IntegrationKind,
+                       APIVersion: v1alpha1.SchemeGroupVersion.String(),
+               },
+               ObjectMeta: metav1.ObjectMeta{
+                       Namespace: ctx.Namespace,
+                       Name:      ctx.Request.Meta.Name,
+               },
+       }
+
+       if err := sdk.Get(&target); err != nil {
+               return err
+       }
+
+       t := target.DeepCopy()
        if t.Annotations == nil {
                t.Annotations = make(map[string]string)
        }
diff --git a/pkg/builder/kaniko/kaniko.go b/pkg/builder/kaniko/kaniko.go
index a9b4a0c..4b2d826 100644
--- a/pkg/builder/kaniko/kaniko.go
+++ b/pkg/builder/kaniko/kaniko.go
@@ -27,7 +27,7 @@ var DefaultSteps = []builder.Step{
        builder.NewStep("build/compute-dependencies", 
builder.ProjectBuildPhase, builder.ComputeDependencies),
        builder.NewStep("packager", builder.ApplicationPackagePhase, 
builder.StandardPackager),
        builder.NewStep("publisher/kaniko", builder.ApplicationPublishPhase, 
Publisher),
-       builder.NewStep("notify", builder.NotifyPhase, builder.Notify),
+       builder.NewStep("notify/context", builder.NotifyPhase, 
builder.NotifyIntegrationContext),
 }
 
 // BuildDir is the directory where to build artifacts (shared with the Kaniko 
pod)
diff --git a/pkg/builder/s2i/s2i.go b/pkg/builder/s2i/s2i.go
index 4d50797..df68f3f 100644
--- a/pkg/builder/s2i/s2i.go
+++ b/pkg/builder/s2i/s2i.go
@@ -25,5 +25,5 @@ var DefaultSteps = []builder.Step{
        builder.NewStep("build/compute-dependencies", 
builder.ProjectBuildPhase, builder.ComputeDependencies),
        builder.NewStep("packager/incremental", 
builder.ApplicationPackagePhase, builder.IncrementalPackager),
        builder.NewStep("publisher/s2i", builder.ApplicationPublishPhase, 
Publisher),
-       builder.NewStep("notify", builder.NotifyPhase, builder.Notify),
+       builder.NewStep("notify/context", builder.NotifyPhase, 
builder.NotifyIntegrationContext),
 }
diff --git a/pkg/stub/action/context/build.go b/pkg/stub/action/context/build.go
index b3e9226..35901fe 100644
--- a/pkg/stub/action/context/build.go
+++ b/pkg/stub/action/context/build.go
@@ -79,7 +79,7 @@ func (action *buildAction) Handle(context 
*v1alpha1.IntegrationContext) error {
                target := context.DeepCopy()
                target.Status.Phase = v1alpha1.IntegrationContextPhaseError
 
-               logrus.Info("Context ", target.Name, " transitioning to state 
", target.Status.Phase)
+               logrus.Infof("Context %s transitioning to state %s, reason: 
%s", target.Name, target.Status.Phase, res.Error.Error())
 
                // remove the build from cache
                defer b.Purge(r)
diff --git a/pkg/stub/action/integration/build_image.go 
b/pkg/stub/action/integration/build_image.go
index a30e4bf..d205ebc 100644
--- a/pkg/stub/action/integration/build_image.go
+++ b/pkg/stub/action/integration/build_image.go
@@ -112,7 +112,7 @@ func (action *buildImageAction) Handle(integration 
*v1alpha1.Integration) error
                target := integration.DeepCopy()
                target.Status.Phase = v1alpha1.IntegrationPhaseError
 
-               logrus.Info("Integration ", target.Name, " transitioning to 
state ", target.Status.Phase)
+               logrus.Infof("Integration %s transitioning to state %s, reason: 
%s", target.Name, target.Status.Phase, res.Error.Error())
 
                // remove the build from cache
                defer b.Purge(r)
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index 84702cb..545067e 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -65,11 +65,13 @@ func (*builderTrait) apply(e *Environment) error {
                        e.Steps = []builder.Step{
                                builder.NewStep("packager", 
builder.ApplicationPackagePhase, builder.StandardPackager),
                                builder.NewStep("publisher/s2i", 
builder.ApplicationPublishPhase, s2i.Publisher),
+                               builder.NewStep("notify/integration", 
builder.NotifyPhase, builder.NotifyIntegration),
                        }
                } else if platform.SupportsKanikoPublishStrategy(e.Platform) {
                        e.Steps = []builder.Step{
                                builder.NewStep("packager", 
builder.ApplicationPackagePhase, builder.StandardPackager),
                                builder.NewStep("publisher/kaniko", 
builder.ApplicationPublishPhase, kaniko.Publisher),
+                               builder.NewStep("notify/integration", 
builder.NotifyPhase, builder.NotifyIntegration),
                        }
                }
        }

Reply via email to