Skip to content

Commit e04509d

Browse files
committed
Purge rustwide cargo caches when we get a new nightly version
1 parent a9d9025 commit e04509d

File tree

2 files changed

+30
-8
lines changed

2 files changed

+30
-8
lines changed

src/build_queue.rs

+18-4
Original file line numberDiff line numberDiff line change
@@ -266,13 +266,27 @@ impl BuildQueue {
266266
.map(|r| PackageKind::Registry(r.as_str()))
267267
.unwrap_or(PackageKind::CratesIo);
268268

269-
if let Err(err) = builder
269+
match builder
270270
.update_toolchain()
271271
.context("Updating toolchain failed, locking queue")
272272
{
273-
report_error(&err);
274-
self.lock()?;
275-
return Err(err);
273+
Err(err) => {
274+
report_error(&err);
275+
self.lock()?;
276+
return Err(err);
277+
}
278+
Ok(true) => {
279+
// toolchain has changed, purge caches
280+
if let Err(err) = builder
281+
.purge_caches()
282+
.context("purging rustwide caches failed, locking queue")
283+
{
284+
report_error(&err);
285+
self.lock()?;
286+
return Err(err);
287+
}
288+
}
289+
Ok(false) => {}
276290
}
277291

278292
builder.build_package(&krate.name, &krate.version, kind)?;

src/docbuilder/rustwide_builder.rs

+12-4
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,14 @@ impl RustwideBuilder {
9898
.enable_networking(limits.networking())
9999
}
100100

101-
pub fn update_toolchain(&mut self) -> Result<()> {
101+
pub fn purge_caches(&self) -> Result<()> {
102+
self.workspace
103+
.purge_all_caches()
104+
.map_err(FailureError::compat)?;
105+
Ok(())
106+
}
107+
108+
pub fn update_toolchain(&mut self) -> Result<bool> {
102109
// Ignore errors if detection fails.
103110
let old_version = self.detect_rustc_version().ok();
104111

@@ -157,11 +164,12 @@ impl RustwideBuilder {
157164
}
158165

159166
self.rustc_version = self.detect_rustc_version()?;
160-
if old_version.as_deref() != Some(&self.rustc_version) {
167+
168+
let has_changed = old_version.as_deref() != Some(&self.rustc_version);
169+
if has_changed {
161170
self.add_essential_files()?;
162171
}
163-
164-
Ok(())
172+
Ok(has_changed)
165173
}
166174

167175
fn detect_rustc_version(&self) -> Result<String> {

0 commit comments

Comments
 (0)