diff options
author | Teddy Wing | 2017-11-16 23:57:25 +0100 |
---|---|---|
committer | Teddy Wing | 2017-11-16 23:57:25 +0100 |
commit | a8a9d4b11e7ea69b2ff201d3cf75c38a61370c08 (patch) | |
tree | 58b71e389938d4568d56e2deb801129ab0087ec9 /src/main.rs | |
parent | e2bee679dc288acce66c930b77a007ce62e3e9f1 (diff) | |
parent | 01fa452209dcea101809fd1b224e029ae4f4a9d9 (diff) | |
download | kipper-a8a9d4b11e7ea69b2ff201d3cf75c38a61370c08.tar.bz2 |
Merge branch 'sleep-before-talking-to-Jenkins'
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 38 |
1 files changed, 24 insertions, 14 deletions
diff --git a/src/main.rs b/src/main.rs index 05ca775..6bb4594 100644 --- a/src/main.rs +++ b/src/main.rs @@ -25,7 +25,9 @@ extern crate rouille; extern crate kipper; use std::env; +use std::thread; use std::io::Read; +use std::time::Duration; use getopts::Options; @@ -137,20 +139,28 @@ fn main() { }, }; - match jenkins::find_and_track_build_and_update_status( - commit_ref, - jenkins_url.clone(), - &jenkins_user_id, - &jenkins_token, - github_token.clone(), - ) { - Ok(_) => {}, - Err(e) => { - error!("{}", e.to_string()); - - return internal_server_error() - }, - }; + // Clone so we can use these values in the thread + // closure. Since both closures are required to be + // 'static, we can't use references to these values. + let jenkins_url = jenkins_url.clone(); + let jenkins_user_id = jenkins_user_id.clone(); + let jenkins_token = jenkins_token.clone(); + let github_token = github_token.clone(); + + thread::spawn(move || { + thread::sleep(Duration::from_secs(30)); + + match jenkins::find_and_track_build_and_update_status( + commit_ref, + jenkins_url, + &jenkins_user_id, + &jenkins_token, + github_token, + ) { + Ok(_) => {}, + Err(e) => error!("{}", e.to_string()), + }; + }); rouille::Response::text("202 Accepted") .with_status_code(202) |