diff --git a/vicky/src/bin/vicky/main.rs b/vicky/src/bin/vicky/main.rs index 985286d..9b3c625 100644 --- a/vicky/src/bin/vicky/main.rs +++ b/vicky/src/bin/vicky/main.rs @@ -58,6 +58,8 @@ fn run_migrations(connection: &mut impl MigrationHarness) -> Res } } +// Note: We cannot do anything about this return type, since it is passed to Rocket directly. +#[allow(clippy::result_large_err)] async fn run_rocket_migrations(rocket: Rocket) -> Result, Rocket> { info!("Running database migrations"); diff --git a/vicky/src/bin/vicky/task_templates.rs b/vicky/src/bin/vicky/task_templates.rs index d372254..25931be 100644 --- a/vicky/src/bin/vicky/task_templates.rs +++ b/vicky/src/bin/vicky/task_templates.rs @@ -1,12 +1,12 @@ use crate::auth::AnyAuthGuard; use crate::errors::AppError; -use crate::events::GlobalEvent; use diesel::result::DatabaseErrorKind; use diesel::result::Error::DatabaseError; use rocket::http::Status; use rocket::serde::json::Json; use rocket::{State, get, post}; use serde::{Deserialize, Serialize}; +use vickylib::vicky::events::GlobalEvent; use std::collections::HashMap; use tokio::sync::broadcast; use uuid::Uuid; @@ -77,7 +77,7 @@ pub async fn task_templates_add( display_name_template: task_template.display_name_template, flake_ref: task_template.flake_ref, locks: task_template.locks, - features: task_template.features, + features: task_template.features.into_iter().collect(), group: task_template.group, variables: task_template.variables, created_at: chrono::Utc::now(), diff --git a/vicky/src/lib/database/entities/task_template.rs b/vicky/src/lib/database/entities/task_template.rs index 41182af..5558aa7 100644 --- a/vicky/src/lib/database/entities/task_template.rs +++ b/vicky/src/lib/database/entities/task_template.rs @@ -31,7 +31,7 @@ pub struct TaskTemplate { pub display_name_template: String, pub flake_ref: FlakeRef, pub locks: Vec, - pub features: Vec, + pub features: HashSet, pub group: Option, pub variables: Vec, @@ -326,7 +326,7 @@ impl args: template.flake_ref_args_template, }, locks: locks.into_iter().map(TaskTemplateLock::from).collect(), - features: template.features, + features: template.features.into_iter().collect(), group: template.group, variables: variables .into_iter() @@ -413,7 +413,7 @@ pub mod db_impl { display_name_template: template.display_name_template.clone(), flake_ref_uri_template: template.flake_ref.flake.clone(), flake_ref_args_template: template.flake_ref.args.clone(), - features: template.features.clone(), + features: template.features.clone().into_iter().collect(), group: template.group.clone(), created_at: template.created_at, } @@ -589,7 +589,7 @@ mod tests { name: "build/{{project}}".to_string(), kind: LockKind::Write, }], - features: vec!["ijustbuildthings".to_string()], + features: vec!["ijustbuildthings".to_string()].into_iter().collect(), group: Some("{{env}}".to_string()), variables: vec![ TaskTemplateVariable {