release_tool/target/
mod.rs1mod docker_archive;
2mod maven_reactor;
3mod oci_image;
4
5pub use docker_archive::DockerArchiveTarget;
6pub use maven_reactor::MavenReactorTarget;
7pub use oci_image::OciImageTarget;
8
9use crate::domain::{ArtifactManifest, ReleaseCandidate, TargetPlan};
10use anyhow::Result;
11use std::collections::BTreeMap;
12use std::path::Path;
13
14pub type PreparedDependencies = BTreeMap<String, ArtifactManifest>;
15
16pub trait TargetAdapter {
17 fn resolve(&self, release: &ReleaseCandidate) -> Result<TargetPlan>;
18 fn prepare(
19 &self,
20 plan: &TargetPlan,
21 dependencies: &PreparedDependencies,
22 staging: &Path,
23 ) -> Result<ArtifactManifest>;
24}