Skip to main content

release_tool/target/
mod.rs

1mod 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}