From c303a4d4638697545bb2a50aff2d92c7c357e17e Mon Sep 17 00:00:00 2001 From: Laszlo Fogas Date: Fri, 19 Jul 2019 09:18:40 +0200 Subject: [PATCH] If there are no steps, it shouldn't yield a proc --- server/procBuilder.go | 7 ++++++- server/procBuilder_test.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/server/procBuilder.go b/server/procBuilder.go index 575c1ca9f..a78318d90 100644 --- a/server/procBuilder.go +++ b/server/procBuilder.go @@ -80,7 +80,6 @@ func (b *procBuilder) Build() ([]*buildItem, error) { Environ: axis, Name: sanitizePath(y.Name), } - b.Curr.Procs = append(b.Curr.Procs, proc) metadata := metadataFromStruct(b.Repo, b.Curr, b.Last, proc, b.Link) environ := b.environmentVariables(metadata, axis) @@ -113,6 +112,10 @@ func (b *procBuilder) Build() ([]*buildItem, error) { ir := b.toInternalRepresentation(parsed, environ, metadata, proc.ID) + if len(ir.Stages) == 0 { + continue + } + item := &buildItem{ Proc: proc, Config: ir, @@ -124,6 +127,8 @@ func (b *procBuilder) Build() ([]*buildItem, error) { if item.Labels == nil { item.Labels = map[string]string{} } + + b.Curr.Procs = append(b.Curr.Procs, proc) items = append(items, item) pidSequence++ } diff --git a/server/procBuilder_test.go b/server/procBuilder_test.go index d5f32ae7f..1c456cc29 100644 --- a/server/procBuilder_test.go +++ b/server/procBuilder_test.go @@ -205,6 +205,42 @@ pipeline: } } +func TestZeroSteps(t *testing.T) { + build := &model.Build{Branch: "dev"} + + b := procBuilder{ + Repo: &model.Repo{}, + Curr: build, + Last: &model.Build{}, + Netrc: &model.Netrc{}, + Secs: []*model.Secret{}, + Regs: []*model.Registry{}, + Link: "", + Yamls: []*remote.FileMeta{ + &remote.FileMeta{Data: []byte(` +skip_clone: true +pipeline: + build: + when: + branch: notdev + image: scratch + yyy: ${DRONE_COMMIT_MESSAGE} +`)}, + }, + } + + buildItems, err := b.Build() + if err != nil { + t.Fatal(err) + } + if len(buildItems) != 0 { + t.Fatal("Should not generate a build item if there are no steps") + } + if len(build.Procs) != 0 { + t.Fatal("Should not generate a build item if there are no steps") + } +} + func TestTree(t *testing.T) { build := &model.Build{}