From eac97a12df5da6be3a332219d6fd7e1301274f08 Mon Sep 17 00:00:00 2001 From: Nick Kubala Date: Tue, 27 Nov 2018 16:37:14 -0800 Subject: [PATCH 1/4] run tests in skaffold build. add flag to skip tests --- cmd/skaffold/app/cmd/build.go | 4 ++-- cmd/skaffold/app/cmd/cmd.go | 1 + pkg/skaffold/config/options.go | 1 + pkg/skaffold/runner/runner.go | 6 ++++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cmd/skaffold/app/cmd/build.go b/cmd/skaffold/app/cmd/build.go index c5b2fa08f2a..d5a7fb99881 100644 --- a/cmd/skaffold/app/cmd/build.go +++ b/cmd/skaffold/app/cmd/build.go @@ -68,9 +68,9 @@ func runBuild(out io.Writer) error { buildOut = ioutil.Discard } - bRes, err := runner.Build(ctx, buildOut, runner.Tagger, config.Build.Artifacts) + bRes, err := runner.RunBuild(ctx, buildOut, config.Build.Artifacts) if err != nil { - return errors.Wrap(err, "build step") + return err } cmdOut := BuildOutput{Builds: bRes} diff --git a/cmd/skaffold/app/cmd/cmd.go b/cmd/skaffold/app/cmd/cmd.go index 1b17d6e6c73..4473b86e742 100644 --- a/cmd/skaffold/app/cmd/cmd.go +++ b/cmd/skaffold/app/cmd/cmd.go @@ -143,6 +143,7 @@ func AddRunDevFlags(cmd *cobra.Command) { cmd.Flags().StringArrayVarP(&opts.Profiles, "profile", "p", nil, "Activate profiles by name") cmd.Flags().StringVarP(&opts.Namespace, "namespace", "n", "", "Run deployments in the specified namespace") cmd.Flags().StringVarP(&opts.DefaultRepo, "default-repo", "d", "", "Default repository value (overrides global config)") + cmd.Flags().BoolVar(&opts.SkipTests, "skip-tests", false, "whether to skip the tests after building") } func SetUpLogs(out io.Writer, level string) error { diff --git a/pkg/skaffold/config/options.go b/pkg/skaffold/config/options.go index c1267ea224a..6a9cb87dbea 100644 --- a/pkg/skaffold/config/options.go +++ b/pkg/skaffold/config/options.go @@ -29,6 +29,7 @@ type SkaffoldOptions struct { Tail bool TailDev bool PortForward bool + SkipTests bool Profiles []string CustomTag string Namespace string diff --git a/pkg/skaffold/runner/runner.go b/pkg/skaffold/runner/runner.go index 9803afe32d8..ea3afbbfc52 100644 --- a/pkg/skaffold/runner/runner.go +++ b/pkg/skaffold/runner/runner.go @@ -213,8 +213,10 @@ func (r *SkaffoldRunner) buildTestDeploy(ctx context.Context, out io.Writer, art return errors.Wrap(err, "build failed") } - if err := r.Test(ctx, out, bRes); err != nil { - return errors.Wrap(err, "test failed") + if !r.opts.SkipTests { + if err = r.Test(ctx, out, bRes); err != nil { + return errors.Wrap(err, "test failed") + } } // Update which images are logged. From 59b06ba1cb93c28334799233a5834ad015618ccc Mon Sep 17 00:00:00 2001 From: Nick Kubala Date: Thu, 29 Nov 2018 12:05:26 -0800 Subject: [PATCH 2/4] nit --- cmd/skaffold/app/cmd/cmd.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/skaffold/app/cmd/cmd.go b/cmd/skaffold/app/cmd/cmd.go index 4473b86e742..62345941ec7 100644 --- a/cmd/skaffold/app/cmd/cmd.go +++ b/cmd/skaffold/app/cmd/cmd.go @@ -143,7 +143,7 @@ func AddRunDevFlags(cmd *cobra.Command) { cmd.Flags().StringArrayVarP(&opts.Profiles, "profile", "p", nil, "Activate profiles by name") cmd.Flags().StringVarP(&opts.Namespace, "namespace", "n", "", "Run deployments in the specified namespace") cmd.Flags().StringVarP(&opts.DefaultRepo, "default-repo", "d", "", "Default repository value (overrides global config)") - cmd.Flags().BoolVar(&opts.SkipTests, "skip-tests", false, "whether to skip the tests after building") + cmd.Flags().BoolVar(&opts.SkipTests, "skip-tests", false, "Whether to skip the tests after building") } func SetUpLogs(out io.Writer, level string) error { From b16968d9ca271be600d390b5ccd7f6e0bcc5cb80 Mon Sep 17 00:00:00 2001 From: Nick Kubala Date: Thu, 29 Nov 2018 12:12:06 -0800 Subject: [PATCH 3/4] fix merge conflict with RunBuild --- pkg/skaffold/runner/runner.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/pkg/skaffold/runner/runner.go b/pkg/skaffold/runner/runner.go index ea3afbbfc52..3d7f5bd6228 100644 --- a/pkg/skaffold/runner/runner.go +++ b/pkg/skaffold/runner/runner.go @@ -208,15 +208,9 @@ func (r *SkaffoldRunner) newLogger(out io.Writer, artifacts []*latest.Artifact) } func (r *SkaffoldRunner) buildTestDeploy(ctx context.Context, out io.Writer, artifacts []*latest.Artifact) error { - bRes, err := r.Build(ctx, out, r.Tagger, artifacts) + bRes, err := r.RunBuild(ctx, out, artifacts) if err != nil { - return errors.Wrap(err, "build failed") - } - - if !r.opts.SkipTests { - if err = r.Test(ctx, out, bRes); err != nil { - return errors.Wrap(err, "test failed") - } + return err } // Update which images are logged. @@ -251,6 +245,21 @@ func (r *SkaffoldRunner) Run(ctx context.Context, out io.Writer, artifacts []*la return nil } +// RunBuild builds artifacts and runs tests on built artifacts +func (r *SkaffoldRunner) RunBuild(ctx context.Context, out io.Writer, artifacts []*latest.Artifact) ([]build.Artifact, error) { + bRes, err := r.Build(ctx, out, r.Tagger, artifacts) + if err != nil { + return nil, errors.Wrap(err, "build failed") + } + + if !r.opts.SkipTests { + if err = r.Test(ctx, out, bRes); err != nil { + return nil, errors.Wrap(err, "test failed") + } + } + return bRes, err +} + // TailLogs prints the logs for deployed artifacts. func (r *SkaffoldRunner) TailLogs(ctx context.Context, out io.Writer, artifacts []*latest.Artifact, bRes []build.Artifact) error { if !r.opts.Tail { From 9c31cecc5e1278b672674abac1ca1bc9b7a1b490 Mon Sep 17 00:00:00 2001 From: Nick Kubala Date: Thu, 29 Nov 2018 12:26:45 -0800 Subject: [PATCH 4/4] RunBuild -> BuildAndTest --- cmd/skaffold/app/cmd/build.go | 2 +- pkg/skaffold/runner/runner.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/skaffold/app/cmd/build.go b/cmd/skaffold/app/cmd/build.go index d5a7fb99881..af6818045c1 100644 --- a/cmd/skaffold/app/cmd/build.go +++ b/cmd/skaffold/app/cmd/build.go @@ -68,7 +68,7 @@ func runBuild(out io.Writer) error { buildOut = ioutil.Discard } - bRes, err := runner.RunBuild(ctx, buildOut, config.Build.Artifacts) + bRes, err := runner.BuildAndTest(ctx, buildOut, config.Build.Artifacts) if err != nil { return err } diff --git a/pkg/skaffold/runner/runner.go b/pkg/skaffold/runner/runner.go index 3d7f5bd6228..625ff816ff6 100644 --- a/pkg/skaffold/runner/runner.go +++ b/pkg/skaffold/runner/runner.go @@ -208,7 +208,7 @@ func (r *SkaffoldRunner) newLogger(out io.Writer, artifacts []*latest.Artifact) } func (r *SkaffoldRunner) buildTestDeploy(ctx context.Context, out io.Writer, artifacts []*latest.Artifact) error { - bRes, err := r.RunBuild(ctx, out, artifacts) + bRes, err := r.BuildAndTest(ctx, out, artifacts) if err != nil { return err } @@ -245,8 +245,8 @@ func (r *SkaffoldRunner) Run(ctx context.Context, out io.Writer, artifacts []*la return nil } -// RunBuild builds artifacts and runs tests on built artifacts -func (r *SkaffoldRunner) RunBuild(ctx context.Context, out io.Writer, artifacts []*latest.Artifact) ([]build.Artifact, error) { +// BuildAndTest builds artifacts and runs tests on built artifacts +func (r *SkaffoldRunner) BuildAndTest(ctx context.Context, out io.Writer, artifacts []*latest.Artifact) ([]build.Artifact, error) { bRes, err := r.Build(ctx, out, r.Tagger, artifacts) if err != nil { return nil, errors.Wrap(err, "build failed")