From 8c6f71bd10e40898af49b3a1d944234094065ab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20S=C4=99k?= Date: Wed, 5 Jun 2019 21:45:49 +0200 Subject: [PATCH] #24 Fix getting job's build when Jenkins URL is set --- pkg/controller/jenkins/client/job.go | 30 ++++++++++++++++++++++++++++ test/e2e/configuration_test.go | 4 ++++ 2 files changed, 34 insertions(+) create mode 100644 pkg/controller/jenkins/client/job.go diff --git a/pkg/controller/jenkins/client/job.go b/pkg/controller/jenkins/client/job.go new file mode 100644 index 00000000..5c00ee5c --- /dev/null +++ b/pkg/controller/jenkins/client/job.go @@ -0,0 +1,30 @@ +package client + +import ( + "net/url" + + "github.com/bndr/gojenkins" +) + +func (jenkins *jenkins) GetBuild(jobName string, number int64) (*gojenkins.Build, error) { + job, err := jenkins.GetJob(jobName) + if err != nil { + return nil, err + } + + // https://github.com/bndr/gojenkins/issues/176 + // workaround begin + jobURL, err := url.Parse(job.Raw.URL) + if err != nil { + return nil, err + } + job.Raw.URL = jobURL.RequestURI() + // workaround end + + build, err := job.GetBuild(number) + + if err != nil { + return nil, err + } + return build, nil +} diff --git a/test/e2e/configuration_test.go b/test/e2e/configuration_test.go index 6e98d621..84754f61 100644 --- a/test/e2e/configuration_test.go +++ b/test/e2e/configuration_test.go @@ -111,6 +111,10 @@ Jenkins.instance.save()`, numberOfExecutors), "1-casc.yaml": fmt.Sprintf(` jenkins: systemMessage: "%s"`, systemMessage), + "2-casc.yaml": ` +unclassified: + location: + url: http://external-jenkins-url:8080`, }, }