[snowpatch] [PATCH 4/5] ci: Move CIBackend and BuildStatus to separate module
Andrew Donnellan
andrew.donnellan at au1.ibm.com
Fri Feb 1 17:17:13 AEDT 2019
Move CIBackend and BuildStatus to a separate module as we're eventually
going to use it for non-Jenkins things.
Signed-off-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>
---
src/ci.rs | 26 ++++++++++++++++++++++++++
src/jenkins.rs | 14 ++------------
src/main.rs | 5 ++++-
3 files changed, 32 insertions(+), 13 deletions(-)
create mode 100644 src/ci.rs
diff --git a/src/ci.rs b/src/ci.rs
new file mode 100644
index 000000000000..7d21edb7662f
--- /dev/null
+++ b/src/ci.rs
@@ -0,0 +1,26 @@
+//
+// snowpatch - continuous integration for patch-based workflows
+//
+// Copyright (C) 2016-2019 IBM Corporation
+// Authors:
+// Russell Currey <ruscur at russell.cc>
+// Andrew Donnellan <andrew.donnellan at au1.ibm.com>
+//
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 2 of the License, or (at your option)
+// any later version.
+//
+// ci.rs - CI backend interface definitions
+//
+
+#[derive(Eq, PartialEq)]
+pub enum BuildStatus {
+ Running,
+ Done,
+}
+
+pub trait CIBackend {
+ fn start_test(&self, job_name: &str, params: Vec<(&str, &str)>)
+ -> Result<String, &'static str>;
+}
diff --git a/src/jenkins.rs b/src/jenkins.rs
index c76561f1fda2..4738fca7a069 100644
--- a/src/jenkins.rs
+++ b/src/jenkins.rs
@@ -35,6 +35,8 @@ use reqwest::header::{HeaderMap, AUTHORIZATION, LOCATION};
use reqwest::{Client, IntoUrl, Response};
use serde_json::{self, Value};
+use ci::{BuildStatus, CIBackend};
+
use patchwork::TestState;
// Constants
@@ -42,12 +44,6 @@ const JENKINS_POLLING_INTERVAL: u64 = 5000; // Polling interval in milliseconds
// Jenkins API definitions
-pub trait CIBackend {
- // TODO: Separate out
- fn start_test(&self, job_name: &str, params: Vec<(&str, &str)>)
- -> Result<String, &'static str>;
-}
-
pub struct JenkinsBackend {
pub base_url: String,
pub reqwest_client: Arc<Client>,
@@ -85,12 +81,6 @@ impl CIBackend for JenkinsBackend {
}
}
-#[derive(Eq, PartialEq)]
-pub enum BuildStatus {
- Running,
- Done,
-}
-
impl JenkinsBackend {
fn headers(&self) -> HeaderMap {
let mut headers = HeaderMap::new();
diff --git a/src/main.rs b/src/main.rs
index 19989c87cb01..b6c756815595 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -58,8 +58,11 @@ use std::time::Duration;
mod patchwork;
use patchwork::{PatchworkServer, TestResult, TestState};
+mod ci;
+use ci::CIBackend;
+
mod jenkins;
-use jenkins::{CIBackend, JenkinsBackend};
+use jenkins::JenkinsBackend;
mod settings;
use settings::{Config, Project};
--
2.11.0
More information about the snowpatch
mailing list