feat: colmena can build user-defined systems #8

Open
rlahfa wants to merge 1 commit from nix-defined-activation into main
Showing only changes of commit eee64b7aec - Show all commits

View file

@ -370,6 +370,9 @@ impl Deployment {
for (name, profile_drv) in profile_drvs.iter() { for (name, profile_drv) in profile_drvs.iter() {
let mut target = chunk.remove(name).unwrap(); let mut target = chunk.remove(name).unwrap();
// TODO: look if target's system type support build on target.
// hard fail if the build on target.
if let Some(force_build_on_target) = self.options.force_build_on_target { if let Some(force_build_on_target) = self.options.force_build_on_target {
target.config.set_build_on_target(force_build_on_target); target.config.set_build_on_target(force_build_on_target);
} }
@ -439,6 +442,9 @@ impl Deployment {
return Err(ColmenaError::Unsupported); return Err(ColmenaError::Unsupported);
} }
// TODO: add to check if there's support to upload keys.
// If not, warn about it but do nothing.
let host = target.host.as_mut().unwrap(); let host = target.host.as_mut().unwrap();
host.set_job(Some(job)); host.set_job(Some(job));
host.upload_keys(&target.config.keys, true).await?; host.upload_keys(&target.config.keys, true).await?;
@ -621,6 +627,8 @@ impl Deployment {
let host = target.host.as_mut().unwrap(); let host = target.host.as_mut().unwrap();
host.set_job(Some(job.clone())); host.set_job(Some(job.clone()));
// TODO: certain system types does not have a concept of profile.
// generalize the profile algorithm
if !target.config.replace_unknown_profiles { if !target.config.replace_unknown_profiles {
job.message("Checking remote profile...".to_string())?; job.message("Checking remote profile...".to_string())?;