diff --git a/pkg/controller/jenkins/jenkins_controller.go b/pkg/controller/jenkins/jenkins_controller.go index fe22723a..e3092d97 100644 --- a/pkg/controller/jenkins/jenkins_controller.go +++ b/pkg/controller/jenkins/jenkins_controller.go @@ -10,6 +10,7 @@ import ( "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/user" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/constants" + "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/jobs" "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" "github.com/jenkinsci/kubernetes-operator/pkg/event" "github.com/jenkinsci/kubernetes-operator/pkg/log" @@ -158,6 +159,10 @@ func (r *ReconcileJenkins) Reconcile(request reconcile.Request) (reconcile.Resul logger.V(log.VWarn).Info(fmt.Sprintf("Reconcile loop failed: %s", err)) } } + + if err == jobs.ErrorUnrecoverableBuildFailed { + return reconcile.Result{Requeue: false}, nil + } return reconcile.Result{Requeue: true}, nil } return result, nil diff --git a/pkg/controller/jenkins/jobs/jobs.go b/pkg/controller/jenkins/jobs/jobs.go index 0cd99336..7874a890 100644 --- a/pkg/controller/jenkins/jobs/jobs.go +++ b/pkg/controller/jenkins/jobs/jobs.go @@ -158,7 +158,11 @@ func (jobs *Jobs) ensureFailedBuild(build v1alpha2.Build, jenkins *v1alpha2.Jenk return false, nil } - jobs.logger.V(log.VWarn).Info(fmt.Sprintf("The retries limit was reached , %+v", build)) + lastFailedBuild, err := jobs.jenkinsClient.GetBuild(build.JobName, build.Number) + if err != nil { + return false, err + } + jobs.logger.V(log.VWarn).Info(fmt.Sprintf("The retries limit was reached, build %+v, logs: %s", build, lastFailedBuild.GetConsoleOutput())) if !preserveStatus { err := jobs.removeBuildFromStatus(build, jenkins)