Skip to content

Commit 0211c2c

Browse files
author
Priya Wadhwa
committed
Error out if no Dockerfiles are found
This should fix #1795; now, if no Dockerfiles are found in the workspace then skaffold will error out. If no k8s manifests are found it will error out (already implemented).
1 parent e1d50f0 commit 0211c2c

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

pkg/skaffold/initializer/init.go

+3
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,9 @@ func generateSkaffoldPipeline(k Initializer, dockerfilePairs []dockerfilePair) (
290290
}
291291

292292
func printAnalyzeJSON(out io.Writer, dockerfiles, images []string) error {
293+
if len(dockerfiles) == 0 {
294+
return errors.New("one or more valid Dockerfiles must be present to run skaffold; please provide at least one Dockerfile and try again")
295+
}
293296
a := struct {
294297
Dockerfiles []string `json:"dockerfiles,omitempty"`
295298
Images []string `json:"images,omitempty"`

pkg/skaffold/initializer/init_test.go

+7-11
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ func TestPrintAnalyzeJSON(t *testing.T) {
2828
name string
2929
dockerfiles []string
3030
images []string
31+
shouldErr bool
3132
expected string
3233
}{
3334
{
@@ -37,25 +38,20 @@ func TestPrintAnalyzeJSON(t *testing.T) {
3738
expected: "{\"dockerfiles\":[\"Dockerfile\",\"Dockerfile_2\"],\"images\":[\"image1\",\"image2\"]}",
3839
},
3940
{
40-
name: "no dockerfile",
41-
images: []string{"image1", "image2"},
42-
expected: "{\"images\":[\"image1\",\"image2\"]}",
41+
name: "no dockerfile",
42+
images: []string{"image1", "image2"},
43+
shouldErr: true,
4344
},
4445
{
45-
name: "no images",
46-
dockerfiles: []string{"Dockerfile", "Dockerfile_2"},
47-
expected: "{\"dockerfiles\":[\"Dockerfile\",\"Dockerfile_2\"]}",
48-
},
49-
{
50-
name: "no dockerfiles or images",
51-
expected: "{}",
46+
name: "no dockerfiles or images",
47+
shouldErr: true,
5248
},
5349
}
5450
for _, test := range tests {
5551
t.Run(test.name, func(t *testing.T) {
5652
out := bytes.NewBuffer([]byte{})
5753
err := printAnalyzeJSON(out, test.dockerfiles, test.images)
58-
testutil.CheckErrorAndDeepEqual(t, false, err, test.expected, out.String())
54+
testutil.CheckErrorAndDeepEqual(t, test.shouldErr, err, test.expected, out.String())
5955
})
6056
}
6157
}

0 commit comments

Comments
 (0)