aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jenkins.rs161
1 files changed, 80 insertions, 81 deletions
diff --git a/src/jenkins.rs b/src/jenkins.rs
index 038056a..273e26c 100644
--- a/src/jenkins.rs
+++ b/src/jenkins.rs
@@ -121,94 +121,93 @@ pub fn find_and_track_build_and_update_status(
// Does `displayName` match
if job_for_commit(&job, &commit_ref) {
info!("Job found: {}", job_url);
- // thread::spawn(move || {
- // Start timer
- let now = Instant::now();
-
- let commit_status = job.result.commit_status();
-
- github::update_commit_status(
- &github_token,
- &commit_ref,
- &commit_status,
- job_url.clone(),
- None,
- "continuous-integration/jenkins".to_owned()
- ).expect(
- format!(
- "GitHub pending status update failed for {}/{} {}.",
- commit_ref.owner,
- commit_ref.repo,
- commit_ref.sha
- ).as_ref()
- );
- while job.result == JobStatus::Pending {
- // loop
- // if timer > 20 minutes
- // call github::update_commit_status with timeout error
- // return
- // wait 30 seconds
- // call request_job again
- // if the status is different
- // call github::update_commit_status
- // stop
-
- info!("Waiting for job to finish");
-
- if now.elapsed().as_secs() == t20_minutes {
- github::update_commit_status(
- &github_token,
- &commit_ref,
- &github::CommitStatus::Error,
- job_url.clone(),
- Some("The status checker timed out.".to_owned()),
- "continuous-integration/jenkins".to_owned()
- ).expect(
- format!(
- "GitHub timeout error status update failed for {}/{} {}.",
- commit_ref.owner,
- commit_ref.repo,
- commit_ref.sha
- ).as_ref()
- );
-
- return Ok(())
- }
+ // Start timer
+ let now = Instant::now();
+
+ let commit_status = job.result.commit_status();
+
+ github::update_commit_status(
+ &github_token,
+ &commit_ref,
+ &commit_status,
+ job_url.clone(),
+ None,
+ "continuous-integration/jenkins".to_owned()
+ ).expect(
+ format!(
+ "GitHub pending status update failed for {}/{} {}.",
+ commit_ref.owner,
+ commit_ref.repo,
+ commit_ref.sha
+ ).as_ref()
+ );
+
+ while job.result == JobStatus::Pending {
+ // loop
+ // if timer > 20 minutes
+ // call github::update_commit_status with timeout error
+ // return
+ // wait 30 seconds
+ // call request_job again
+ // if the status is different
+ // call github::update_commit_status
+ // stop
+
+ info!("Waiting for job to finish");
+
+ if now.elapsed().as_secs() == t20_minutes {
+ github::update_commit_status(
+ &github_token,
+ &commit_ref,
+ &github::CommitStatus::Error,
+ job_url.clone(),
+ Some("The status checker timed out.".to_owned()),
+ "continuous-integration/jenkins".to_owned()
+ ).expect(
+ format!(
+ "GitHub timeout error status update failed for {}/{} {}.",
+ commit_ref.owner,
+ commit_ref.repo,
+ commit_ref.sha
+ ).as_ref()
+ );
+
+ return Ok(())
+ }
- sleep(Duration::from_secs(30));
+ sleep(Duration::from_secs(30));
- let updated_job = request_job(
- &jenkins_url,
- &jenkins_client,
- job_url.as_ref()
+ let updated_job = request_job(
+ &jenkins_url,
+ &jenkins_client,
+ job_url.as_ref()
+ ).expect(
+ format!("Failed to request job '{}'.", job_url).as_ref()
+ );
+
+ if job.result != updated_job.result {
+ github::update_commit_status(
+ &github_token,
+ &commit_ref,
+ &job.result.commit_status(),
+ job_url.clone(),
+ None,
+ "continuous-integration/jenkins".to_owned()
).expect(
- format!("Failed to request job '{}'.", job_url).as_ref()
+ format!(
+ "GitHub status update failed for {}/{} {}.",
+ commit_ref.owner,
+ commit_ref.repo,
+ commit_ref.sha
+ ).as_ref()
);
- if job.result != updated_job.result {
- github::update_commit_status(
- &github_token,
- &commit_ref,
- &job.result.commit_status(),
- job_url.clone(),
- None,
- "continuous-integration/jenkins".to_owned()
- ).expect(
- format!(
- "GitHub status update failed for {}/{} {}.",
- commit_ref.owner,
- commit_ref.repo,
- commit_ref.sha
- ).as_ref()
- );
-
- return Ok(())
- }
-
- job = updated_job;
+ return Ok(())
}
- // });
+
+ job = updated_job;
+ }
return Ok(())
}