diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-11-11 17:04:11 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-11-11 17:05:39 +0100 |
commit | f1626ac35ef0c8359e4a342a564a3365d96bce1c (patch) | |
tree | 3e291e3902cbe0c11bb41eb842fd2a6558430074 /src/job/runnable.rs | |
parent | dbb931d96ce53ee8f94ac8604985e4408576974e (diff) |
Copy package source to container before running build
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/job/runnable.rs')
-rw-r--r-- | src/job/runnable.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/job/runnable.rs b/src/job/runnable.rs index 6b26d43..066d434 100644 --- a/src/job/runnable.rs +++ b/src/job/runnable.rs @@ -12,6 +12,8 @@ use crate::package::Package; use crate::package::ParseDependency; use crate::package::Script; use crate::package::ScriptBuilder; +use crate::source::SourceCache; +use crate::source::SourceEntry; use crate::util::docker::ImageName; /// A job configuration that can be run. All inputs are clear here. @@ -27,6 +29,9 @@ pub struct RunnableJob { image: ImageName, #[getset(get = "pub")] + source_cache: SourceCache, + + #[getset(get = "pub")] script: Script, #[getset(get = "pub")] @@ -34,7 +39,7 @@ pub struct RunnableJob { } impl RunnableJob { - pub fn build_from_job(job: Job, merged_stores: &MergedStores) -> Result<Self> { + pub fn build_from_job(job: Job, merged_stores: &MergedStores, source_cache: &SourceCache) -> Result<Self> { let script = ScriptBuilder::new(&job.script_shebang) .build(&job.package, &job.script_phases)?; @@ -60,12 +65,17 @@ impl RunnableJob { package: job.package, image: job.image, resources: job.resources.into_iter().chain(resources.into_iter()).collect(), + source_cache: source_cache.clone(), script, }) } + pub fn package_source(&self) -> SourceEntry { + self.source_cache.source_for(&self.package()) + } + fn build_resource(dep: &dyn ParseDependency, merged_stores: &MergedStores) -> Result<JobResource> { let (name, vers) = dep.parse_as_name_and_version()?; trace!("Copying dep: {:?} {:?}", name, vers); |