diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-08-26 08:05:43 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-08-26 08:05:43 +0200 |
commit | bec43302ea118ec2cc2b8832e27d08c6fc3cb37c (patch) | |
tree | 7a21fd654dba632b81edcbc699defd3e6a984189 /client | |
parent | 524dbdd224a39fb5537687a95ea16ab524db1338 (diff) |
Look for pom when resolving application package
Diffstat (limited to 'client')
-rw-r--r-- | client/go/cmd/deploy_test.go | 2 | ||||
-rw-r--r-- | client/go/cmd/testdata/applications/withEmptyTarget/pom.xml | 1 | ||||
-rw-r--r-- | client/go/cmd/testdata/applications/withTarget/pom.xml | 1 | ||||
-rw-r--r-- | client/go/vespa/deploy.go | 35 | ||||
-rw-r--r-- | client/go/vespa/deploy_test.go | 1 |
5 files changed, 20 insertions, 20 deletions
diff --git a/client/go/cmd/deploy_test.go b/client/go/cmd/deploy_test.go index 9042bc2c2a8..94936931dff 100644 --- a/client/go/cmd/deploy_test.go +++ b/client/go/cmd/deploy_test.go @@ -62,7 +62,7 @@ func TestDeployApplicationDirectoryWithTarget(t *testing.T) { func TestDeployApplicationDirectoryWithEmptyTarget(t *testing.T) { client := &mockHttpClient{} assert.Equal(t, - "\x1b[31mno application package found in testdata/applications/withEmptyTarget\x1b[0m\n", + "\x1b[31mpom.xml exists but no target/application.zip. Run mvn package first\x1b[0m\n", executeCommand(t, client, []string{"deploy", "testdata/applications/withEmptyTarget"}, []string{})) } diff --git a/client/go/cmd/testdata/applications/withEmptyTarget/pom.xml b/client/go/cmd/testdata/applications/withEmptyTarget/pom.xml new file mode 100644 index 00000000000..2b1875a5532 --- /dev/null +++ b/client/go/cmd/testdata/applications/withEmptyTarget/pom.xml @@ -0,0 +1 @@ +<services/>
\ No newline at end of file diff --git a/client/go/cmd/testdata/applications/withTarget/pom.xml b/client/go/cmd/testdata/applications/withTarget/pom.xml new file mode 100644 index 00000000000..2b1875a5532 --- /dev/null +++ b/client/go/cmd/testdata/applications/withTarget/pom.xml @@ -0,0 +1 @@ +<services/>
\ No newline at end of file diff --git a/client/go/vespa/deploy.go b/client/go/vespa/deploy.go index dec46a92b00..7be2455402b 100644 --- a/client/go/vespa/deploy.go +++ b/client/go/vespa/deploy.go @@ -7,7 +7,6 @@ package vespa import ( "archive/zip" "errors" - "fmt" "io" "io/ioutil" "net/http" @@ -24,26 +23,26 @@ type ApplicationPackage struct { Path string } -// Find application package relative given name, which is the path to a file or directory. -func FindApplicationPackage(name string) (ApplicationPackage, error) { - if isZip(name) { - return ApplicationPackage{Path: name}, nil +// Find an application package zip or directory below an application path +func FindApplicationPackage(application string) (ApplicationPackage, error) { + if isZip(application) { + return ApplicationPackage{Path: application}, nil + } + if util.PathExists(filepath.Join(application, "pom.xml")) { + zip := filepath.Join(application, "target", "application.zip") + if !util.PathExists(zip) { + return ApplicationPackage{}, errors.New("pom.xml exists but no target/application.zip. Run mvn package first") + } else { + return ApplicationPackage{Path: zip}, nil + } } - candidates := []string{ - filepath.Join(name, "target", "application.zip"), - filepath.Join(name, "src", "main", "application", "services.xml"), - filepath.Join(name, "services.xml"), + if util.PathExists(filepath.Join(application, "src", "main", "application")) { + return ApplicationPackage{Path: filepath.Join(application, "src", "main", "application")}, nil } - for _, path := range candidates { - if !util.PathExists(path) { - continue - } - if !isZip(path) { - path = filepath.Dir(path) - } - return ApplicationPackage{Path: path}, nil + if util.PathExists(filepath.Join(application, "services.xml")) { + return ApplicationPackage{Path: application}, nil } - return ApplicationPackage{}, fmt.Errorf("no application package found in %s", name) + return ApplicationPackage{}, errors.New("Could not find an application package source in '" + application + "'") } func (ap *ApplicationPackage) IsZip() bool { return isZip(ap.Path) } diff --git a/client/go/vespa/deploy_test.go b/client/go/vespa/deploy_test.go index cfc52cf92a9..c0995cbfe8c 100644 --- a/client/go/vespa/deploy_test.go +++ b/client/go/vespa/deploy_test.go @@ -18,7 +18,6 @@ func TestFindApplicationPackage(t *testing.T) { {filepath.Join(dir, "foo"), "", true}, {filepath.Join(dir, "services.xml"), dir, false}, {filepath.Join(dir, "src", "main", "application", "services.xml"), filepath.Join(dir, "src", "main", "application"), false}, - {filepath.Join(dir, "target", "application.zip"), filepath.Join(dir, "target", "application.zip"), false}, } zipFile := filepath.Join(dir, "application.zip") |