Skip to content

Commit 05dc095

Browse files
sypharjyn514
authored andcommitted
delete old single-file storage files when rebuilding a release
1 parent 905856b commit 05dc095

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

src/docbuilder/rustwide_builder.rs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,15 @@ impl RustwideBuilder {
446446
Err(err) => warn!("{:#?}", err),
447447
}
448448

449+
// delete eventually existing files from pre-archive storage.
450+
// we're doing this in the end so eventual problems in the build
451+
// won't lead to non-existing docs.
452+
for prefix in &["rustdoc", "sources"] {
453+
let prefix = format!("{}/{}/{}/", prefix, name, version);
454+
log::debug!("cleaning old storage folder {}", prefix);
455+
self.storage.delete_prefix(&prefix)?;
456+
}
457+
449458
Ok(res.result.successful)
450459
})()
451460
.map_err(|e| failure::Error::from_boxed_compat(e.into()))
@@ -761,10 +770,14 @@ mod tests {
761770
let version = DUMMY_CRATE_VERSION;
762771
let default_target = "x86_64-unknown-linux-gnu";
763772

773+
let storage = env.storage();
774+
let old_rustdoc_file = format!("rustdoc/{}/{}/some_doc_file", crate_, version);
775+
let old_source_file = format!("sources/{}/{}/some_source_file", crate_, version);
776+
storage.store_one(&old_rustdoc_file, Vec::new())?;
777+
storage.store_one(&old_source_file, Vec::new())?;
778+
764779
let mut builder = RustwideBuilder::init(env).unwrap();
765-
builder
766-
.build_package(crate_, version, PackageKind::CratesIo)
767-
.map(|_| ())?;
780+
assert!(builder.build_package(crate_, version, PackageKind::CratesIo)?);
768781

769782
// check release record in the db (default and other targets)
770783
let mut conn = env.db().conn();
@@ -812,9 +825,12 @@ mod tests {
812825
]
813826
);
814827

815-
let storage = env.storage();
816828
let web = env.frontend();
817829

830+
// old rustdoc & source files are gone
831+
assert!(!storage.exists(&old_rustdoc_file)?);
832+
assert!(!storage.exists(&old_source_file)?);
833+
818834
// doc archive exists
819835
let doc_archive = rustdoc_archive_path(crate_, version);
820836
assert!(storage.exists(&doc_archive)?);

0 commit comments

Comments
 (0)