@@ -230,10 +230,22 @@ impl RustwideBuilder {
230
230
let mut conn = self . db . get ( ) ?;
231
231
let limits = Limits :: for_crate ( & self . config , & mut conn, DUMMY_CRATE_NAME ) ?;
232
232
233
+ // FIXME: for now, purge all build dirs before each build.
234
+ // Currently we have some error situations where the build directory wouldn't be deleted
235
+ // after the build failed:
236
+ // https://github.com/rust-lang/docs.rs/issues/820
237
+ // This should be solved in a better way, likely refactoring the whole builder structure,
238
+ // but for now we chose this simple way to prevent that the build directory remains can
239
+ // fill up disk space.
240
+ // This also prevents having multiple builders using the same rustwide workspace,
241
+ // which we don't do. Currently our separate builders use a separate rustwide workspace.
242
+ self . workspace
243
+ . purge_all_build_dirs ( )
244
+ . map_err ( FailureError :: compat) ?;
245
+
233
246
let mut build_dir = self
234
247
. workspace
235
248
. build_dir ( & format ! ( "essential-files-{rustc_version}" ) ) ;
236
- build_dir. purge ( ) . map_err ( FailureError :: compat) ?;
237
249
238
250
// This is an empty library crate that is supposed to always build.
239
251
let krate = Crate :: crates_io ( DUMMY_CRATE_NAME , DUMMY_CRATE_VERSION ) ;
@@ -288,7 +300,6 @@ impl RustwideBuilder {
288
300
} )
289
301
. map_err ( |e| e. compat ( ) ) ?;
290
302
291
- build_dir. purge ( ) . map_err ( FailureError :: compat) ?;
292
303
krate
293
304
. purge_from_cache ( & self . workspace )
294
305
. map_err ( FailureError :: compat) ?;
@@ -363,8 +374,20 @@ impl RustwideBuilder {
363
374
}
364
375
}
365
376
377
+ // FIXME: for now, purge all build dirs before each build.
378
+ // Currently we have some error situations where the build directory wouldn't be deleted
379
+ // after the build failed:
380
+ // https://github.com/rust-lang/docs.rs/issues/820
381
+ // This should be solved in a better way, likely refactoring the whole builder structure,
382
+ // but for now we chose this simple way to prevent that the build directory remains can
383
+ // fill up disk space.
384
+ // This also prevents having multiple builders using the same rustwide workspace,
385
+ // which we don't do. Currently our separate builders use a separate rustwide workspace.
386
+ self . workspace
387
+ . purge_all_build_dirs ( )
388
+ . map_err ( FailureError :: compat) ?;
389
+
366
390
let mut build_dir = self . workspace . build_dir ( & format ! ( "{name}-{version}" ) ) ;
367
- build_dir. purge ( ) . map_err ( FailureError :: compat) ?;
368
391
369
392
let is_local = matches ! ( kind, PackageKind :: Local ( _) ) ;
370
393
let krate = match kind {
@@ -564,7 +587,6 @@ impl RustwideBuilder {
564
587
} )
565
588
. map_err ( |e| e. compat ( ) ) ?;
566
589
567
- build_dir. purge ( ) . map_err ( FailureError :: compat) ?;
568
590
krate
569
591
. purge_from_cache ( & self . workspace )
570
592
. map_err ( FailureError :: compat) ?;
0 commit comments