feat: user-facing compliance types
This commit is contained in:
parent
6d39176cbf
commit
85bce281ff
5 changed files with 62 additions and 0 deletions
3
src/complaince/mod.rs
Normal file
3
src/complaince/mod.rs
Normal file
|
@ -0,0 +1,3 @@
|
|||
pub mod result;
|
||||
pub mod suite;
|
||||
pub mod target;
|
11
src/complaince/result.rs
Normal file
11
src/complaince/result.rs
Normal file
|
@ -0,0 +1,11 @@
|
|||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use super::suite::Test;
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
|
||||
pub struct Result {
|
||||
pub test: Test,
|
||||
pub success: bool,
|
||||
// sent by the app
|
||||
pub logs: String,
|
||||
}
|
24
src/complaince/suite.rs
Normal file
24
src/complaince/suite.rs
Normal file
|
@ -0,0 +1,24 @@
|
|||
use std::collections::HashMap;
|
||||
|
||||
use semver::Version;
|
||||
use url::Url;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
|
||||
pub struct Suite {
|
||||
pub name: String,
|
||||
pub description: String,
|
||||
pub version: Version,
|
||||
pub tests: Vec<Test>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
|
||||
pub struct Test {
|
||||
pub name: String,
|
||||
pub url: Url,
|
||||
pub version: Version,
|
||||
// URL to the container image, the version should be the tag
|
||||
pub container: String,
|
||||
pub env_vars: Option<HashMap<String, String>>,
|
||||
}
|
15
src/complaince/target.rs
Normal file
15
src/complaince/target.rs
Normal file
|
@ -0,0 +1,15 @@
|
|||
use serde::{Deserialize, Serialize};
|
||||
use url::Url;
|
||||
|
||||
use super::suite::Suite;
|
||||
use super::suite::Test;
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
|
||||
pub struct Target {
|
||||
pub version: String,
|
||||
pub name: String,
|
||||
pub homepage: Url,
|
||||
pub repository: Url,
|
||||
pub init_scripts: Option<Vec<Test>>,
|
||||
pub suites: Vec<Suite>,
|
||||
}
|
9
src/complaince/validator.rs
Normal file
9
src/complaince/validator.rs
Normal file
|
@ -0,0 +1,9 @@
|
|||
use std::fs;
|
||||
mod result;
|
||||
mod suite;
|
||||
mod target;
|
||||
|
||||
fn main() {
|
||||
let s = fs::read_to_string("../ftest-control/targets/forgejo/ftest.toml").unwrap();
|
||||
let _target: target::Target = toml::from_str(&s).unwrap();
|
||||
}
|
Loading…
Reference in a new issue