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; } }); |