BuildStage

This commit is contained in:
Michael Snoyman 2013-01-29 20:11:01 +02:00
parent e479c6473c
commit 3ac3d0607b
4 changed files with 12 additions and 14 deletions

View File

@ -21,7 +21,7 @@ defaultBuildSettings :: BuildSettings
defaultBuildSettings = BuildSettings defaultBuildSettings = BuildSettings
{ sandboxRoot = "sandbox" { sandboxRoot = "sandbox"
, expectedFailuresBuild = defaultExpectedFailures , expectedFailuresBuild = defaultExpectedFailures
, extraArgs = ["-fnetwork23"] , extraArgs = const ["-fnetwork23"]
, testWorkerThreads = 4 , testWorkerThreads = 4
} }
@ -47,15 +47,12 @@ build settings' bp = do
let installBuildTool tool = do let installBuildTool tool = do
putStrLn $ "Installing build tool: " ++ tool putStrLn $ "Installing build tool: " ++ tool
ec <- withBinaryFile "build-tools.log" WriteMode $ \handle -> do ec <- withBinaryFile "build-tools.log" WriteMode $ \handle -> do
let args = addCabalArgs settings let args = addCabalArgs settings BSBuild
$ "install" $ "install"
: ("--cabal-lib-version=" ++ libVersion) : ("--cabal-lib-version=" ++ libVersion)
: "--build-log=logs-tools/$pkg.log" : "--build-log=logs-tools/$pkg.log"
: "-j" : "-j"
: concat : [tool]
[ extraArgs settings
, [tool]
]
hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args)) hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
ph <- runCabal args handle ph <- runCabal args handle
waitForProcess ph waitForProcess ph
@ -71,14 +68,13 @@ build settings' bp = do
putStrLn "Beginning Stackage build" putStrLn "Beginning Stackage build"
ph <- withBinaryFile "build.log" WriteMode $ \handle -> do ph <- withBinaryFile "build.log" WriteMode $ \handle -> do
let args = addCabalArgs settings let args = addCabalArgs settings BSBuild
$ "install" $ "install"
: ("--cabal-lib-version=" ++ libVersion) : ("--cabal-lib-version=" ++ libVersion)
: "--build-log=logs/$pkg.log" : "--build-log=logs/$pkg.log"
: "-j" : "-j"
: concat : concat
[ extraArgs settings [ bpPackageList bp
, bpPackageList bp
] ]
hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args)) hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
runCabal args handle runCabal args handle

View File

@ -96,7 +96,7 @@ runTestSuite settings testdir (packageName, SelectedPackageInfo {..}) = do
passed <- handle (\TestException -> return False) $ do passed <- handle (\TestException -> return False) $ do
getHandle WriteMode $ run "cabal" ["unpack", package] testdir getHandle WriteMode $ run "cabal" ["unpack", package] testdir
getHandle AppendMode $ run "cabal" (addCabalArgs settings ["configure", "--enable-tests"]) dir getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
when spiHasTests $ do when spiHasTests $ do
getHandle AppendMode $ run "cabal" ["build"] dir getHandle AppendMode $ run "cabal" ["build"] dir
getHandle AppendMode $ runGhcPackagePath "cabal" ["test"] dir getHandle AppendMode $ runGhcPackagePath "cabal" ["test"] dir

View File

@ -110,9 +110,11 @@ data SelectSettings = SelectSettings
, stablePackages :: Map PackageName (VersionRange, Maintainer) , stablePackages :: Map PackageName (VersionRange, Maintainer)
} }
data BuildStage = BSBuild | BSTest
data BuildSettings = BuildSettings data BuildSettings = BuildSettings
{ sandboxRoot :: FilePath { sandboxRoot :: FilePath
, extraArgs :: [String] , extraArgs :: BuildStage -> [String]
, expectedFailuresBuild :: Set PackageName , expectedFailuresBuild :: Set PackageName
, testWorkerThreads :: Int , testWorkerThreads :: Int
-- ^ How many threads to spawn for running test suites. -- ^ How many threads to spawn for running test suites.

View File

@ -102,15 +102,15 @@ addCabalArgsOnlyGlobal rest
: "--package-db=global" : "--package-db=global"
: rest : rest
addCabalArgs :: BuildSettings -> [String] -> [String] addCabalArgs :: BuildSettings -> BuildStage -> [String] -> [String]
addCabalArgs settings rest addCabalArgs settings bs rest
= addCabalArgsOnlyGlobal = addCabalArgsOnlyGlobal
$ ("--package-db=" ++ packageDir settings) $ ("--package-db=" ++ packageDir settings)
: ("--libdir=" ++ libDir settings) : ("--libdir=" ++ libDir settings)
: ("--bindir=" ++ binDir settings) : ("--bindir=" ++ binDir settings)
: ("--datadir=" ++ dataDir settings) : ("--datadir=" ++ dataDir settings)
: ("--docdir=" ++ docDir settings) : ("--docdir=" ++ docDir settings)
: extraArgs settings ++ rest : extraArgs settings bs ++ rest
-- | Modified environment that adds our sandboxed bin folder to PATH. -- | Modified environment that adds our sandboxed bin folder to PATH.
getModifiedEnv :: BuildSettings -> IO [(String, String)] getModifiedEnv :: BuildSettings -> IO [(String, String)]