diff options
| -rw-r--r-- | src/jenkins.rs | 61 | 
1 files changed, 30 insertions, 31 deletions
| diff --git a/src/jenkins.rs b/src/jenkins.rs index b491a75..edfb95f 100644 --- a/src/jenkins.rs +++ b/src/jenkins.rs @@ -93,8 +93,7 @@ pub fn find_and_track_build_and_update_status(                  // Start timer                  let now = Instant::now(); -                let job_status = job.result; -                let commit_status = job_status.commit_status(); +                let commit_status = job.result.commit_status();                  github::update_commit_status(                      &commit_ref, @@ -104,7 +103,7 @@ pub fn find_and_track_build_and_update_status(                      "continuous-integration/jenkins".to_string()                  ); -                if job_status == JobStatus::Pending { +                while job.result == JobStatus::Pending {                      // loop                      // if timer > 20 minutes                      //   call github::update_commit_status with timeout error @@ -115,35 +114,35 @@ pub fn find_and_track_build_and_update_status(                      //   call github::update_commit_status                      //   stop -                    loop { -                        if now.elapsed().as_secs() == t20_minutes { -                            github::update_commit_status( -                                &commit_ref, -                                &github::CommitStatus::Error, -                                job_url.clone(), -                                Some("The status checker timed out.".to_string()), -                                "continuous-integration/jenkins".to_string() -                            ); - -                            return -                        } - -                        sleep(Duration::from_secs(30)); - -                        let job = request_job(job_url.as_ref()); - -                        if job.result != job_status { -                            github::update_commit_status( -                                &commit_ref, -                                &job.result.commit_status(), -                                job_url.clone(), -                                None, -                                "continuous-integration/jenkins".to_string() -                            ); - -                            return -                        } +                    if now.elapsed().as_secs() == t20_minutes { +                        github::update_commit_status( +                            &commit_ref, +                            &github::CommitStatus::Error, +                            job_url.clone(), +                            Some("The status checker timed out.".to_string()), +                            "continuous-integration/jenkins".to_string() +                        ); + +                        return                      } + +                    sleep(Duration::from_secs(30)); + +                    let updated_job = request_job(job_url.as_ref()); + +                    if job.result != updated_job.result { +                        github::update_commit_status( +                            &commit_ref, +                            &job.result.commit_status(), +                            job_url.clone(), +                            None, +                            "continuous-integration/jenkins".to_string() +                        ); + +                        return +                    } + +                    let job = updated_job;                  }              }); | 
