From b865882831386902279da8d025bc2df1437f70d8 Mon Sep 17 00:00:00 2001 From: Matt Toohey Date: Thu, 30 Jan 2025 15:17:19 +1100 Subject: [PATCH] fix: add warning if build or deploy command finds no modules (#4239) fixes https://github.com/block/ftl/issues/4214 --- cmd/ftl/cmd_build.go | 6 ++++++ cmd/ftl/cmd_deploy.go | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/cmd/ftl/cmd_build.go b/cmd/ftl/cmd_build.go index 870c0d1684..c8a739ce44 100644 --- a/cmd/ftl/cmd_build.go +++ b/cmd/ftl/cmd_build.go @@ -8,6 +8,7 @@ import ( "github.com/block/ftl/backend/protos/xyz/block/ftl/v1/ftlv1connect" "github.com/block/ftl/internal/buildengine" + "github.com/block/ftl/internal/log" "github.com/block/ftl/internal/projectconfig" "github.com/block/ftl/internal/schema/schemaeventsource" ) @@ -25,6 +26,7 @@ func (b *buildCmd) Run( schemaSourceFactory func() schemaeventsource.EventSource, projConfig projectconfig.Config, ) error { + logger := log.FromContext(ctx) if len(b.Dirs) == 0 { b.Dirs = projConfig.AbsModuleDirs() } @@ -48,6 +50,10 @@ func (b *buildCmd) Run( if err != nil { return err } + if len(engine.Modules()) == 0 { + logger.Warnf("No modules were found to build") + return nil + } if err := engine.Build(ctx); err != nil { return fmt.Errorf("build failed: %w", err) } diff --git a/cmd/ftl/cmd_deploy.go b/cmd/ftl/cmd_deploy.go index b41dd2c4b8..b5fd8c2e52 100644 --- a/cmd/ftl/cmd_deploy.go +++ b/cmd/ftl/cmd_deploy.go @@ -7,6 +7,7 @@ import ( provisionerconnect "github.com/block/ftl/backend/protos/xyz/block/ftl/provisioner/v1beta1/provisionerpbconnect" "github.com/block/ftl/internal/buildengine" + "github.com/block/ftl/internal/log" "github.com/block/ftl/internal/projectconfig" "github.com/block/ftl/internal/schema/schemaeventsource" ) @@ -24,6 +25,7 @@ func (d *deployCmd) Run( provisionerClient provisionerconnect.ProvisionerServiceClient, schemaSourceFactory func() schemaeventsource.EventSource, ) error { + logger := log.FromContext(ctx) // Cancel build engine context to ensure all language plugins are killed. if d.Timeout > 0 { var cancel context.CancelFunc //nolint: forbidigo @@ -42,7 +44,10 @@ func (d *deployCmd) Run( if err != nil { return err } - + if len(engine.Modules()) == 0 { + logger.Warnf("No modules were found to deploy") + return nil + } err = engine.BuildAndDeploy(ctx, d.Replicas, !d.NoWait) if err != nil { return fmt.Errorf("failed to deploy: %w", err)