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`, }, }