@@ -367,8 +367,10 @@ singleBuild pb@PerformBuild {..} registeredPackages SingleBuild {..} =
367367 writeIORef isConfiged True
368368 inner
369369
370− unless (pname `member` registeredPackages) $ withConfiged $ do
371− deletePreviousResults pb pname
370+ prevBuildResult <- getPreviousResult pb Build pident
371+ unless (prevBuildResult == PRSuccess) $ withConfiged $ do
372+ assert (pname `notMember` registeredPackages) $ do
373+ deletePreviousResults pb pident
372374
373375 log' $ "Building " ++ namever
374376 run "cabal" ["build"]
@@ -378,6 +380,8 @@ singleBuild pb@PerformBuild {..} registeredPackages SingleBuild {..} =
378380 withMVar sbRegisterMutex $ const $
379381 run "cabal" ["register"]
380382
383+ savePreviousResult pb Build pident True
384+
381385 -- Even if the tests later fail, we can allow other libraries to build
382386 -- on top of our successful results
383387 --
@@ -497,7 +501,7 @@ copyBuiltInHaddocks docdir = do
497501------------- Previous results
498502
499503-- | The previous actions that can be run
500−data ResultType = Haddock | Test
504+data ResultType = Build | Haddock | Test
501505 deriving (Show, Enum, Eq, Ord, Bounded, Read)
502506
503507-- | The result generated on a previous run