on master help sign in
BuildStage
3ac3d06Michael Snoyman
Stackage/Build.hs+5−9
@@ -21,7 +21,7 @@ defaultBuildSettings :: BuildSettings
21defaultBuildSettings = BuildSettings
21defaultBuildSettings = BuildSettings
22 { sandboxRoot = "sandbox"
22 { sandboxRoot = "sandbox"
23 , expectedFailuresBuild = defaultExpectedFailures
23 , expectedFailuresBuild = defaultExpectedFailures
24− , extraArgs = ["-fnetwork23"]
24+ , extraArgs = const ["-fnetwork23"]
25 , testWorkerThreads = 4
25 , testWorkerThreads = 4
26 }
26 }
27
27
@@ -47,15 +47,12 @@ build settings' bp = do
47 let installBuildTool tool = do
47 let installBuildTool tool = do
48 putStrLn $ "Installing build tool: " ++ tool
48 putStrLn $ "Installing build tool: " ++ tool
49 ec <- withBinaryFile "build-tools.log" WriteMode $ \handle -> do
49 ec <- withBinaryFile "build-tools.log" WriteMode $ \handle -> do
50− let args = addCabalArgs settings
50+ let args = addCabalArgs settings BSBuild
51 $ "install"
51 $ "install"
52 : ("--cabal-lib-version=" ++ libVersion)
52 : ("--cabal-lib-version=" ++ libVersion)
53 : "--build-log=logs-tools/$pkg.log"
53 : "--build-log=logs-tools/$pkg.log"
54 : "-j"
54 : "-j"
55− : concat
56− [ extraArgs settings
57− , [tool]
55+ : [tool]
58− ]
59 hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
56 hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
60 ph <- runCabal args handle
57 ph <- runCabal args handle
61 waitForProcess ph
58 waitForProcess ph
@@ -71,14 +68,13 @@ build settings' bp = do
71
68
72 putStrLn "Beginning Stackage build"
69 putStrLn "Beginning Stackage build"
73 ph <- withBinaryFile "build.log" WriteMode $ \handle -> do
70 ph <- withBinaryFile "build.log" WriteMode $ \handle -> do
74− let args = addCabalArgs settings
71+ let args = addCabalArgs settings BSBuild
75 $ "install"
72 $ "install"
76 : ("--cabal-lib-version=" ++ libVersion)
73 : ("--cabal-lib-version=" ++ libVersion)
77 : "--build-log=logs/$pkg.log"
74 : "--build-log=logs/$pkg.log"
78 : "-j"
75 : "-j"
79 : concat
76 : concat
80− [ extraArgs settings
81− , bpPackageList bp
77+ [ bpPackageList bp
82 ]
78 ]
83 hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
79 hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
84 runCabal args handle
80 runCabal args handle
Stackage/Test.hs+1−1
@@ -96,7 +96,7 @@ runTestSuite settings testdir (packageName, SelectedPackageInfo {..}) = do
96
96
97 passed <- handle (\TestException -> return False) $ do
97 passed <- handle (\TestException -> return False) $ do
98 getHandle WriteMode $ run "cabal" ["unpack", package] testdir
98 getHandle WriteMode $ run "cabal" ["unpack", package] testdir
99− getHandle AppendMode $ run "cabal" (addCabalArgs settings ["configure", "--enable-tests"]) dir
99+ getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
100 when spiHasTests $ do
100 when spiHasTests $ do
101 getHandle AppendMode $ run "cabal" ["build"] dir
101 getHandle AppendMode $ run "cabal" ["build"] dir
102 getHandle AppendMode $ runGhcPackagePath "cabal" ["test"] dir
102 getHandle AppendMode $ runGhcPackagePath "cabal" ["test"] dir
Stackage/Types.hs+3−1
@@ -110,9 +110,11 @@ data SelectSettings = SelectSettings
110 , stablePackages :: Map PackageName (VersionRange, Maintainer)
110 , stablePackages :: Map PackageName (VersionRange, Maintainer)
111 }
111 }
112
112
113+data BuildStage = BSBuild | BSTest
114+
113data BuildSettings = BuildSettings
115data BuildSettings = BuildSettings
114 { sandboxRoot :: FilePath
116 { sandboxRoot :: FilePath
115− , extraArgs :: [String]
117+ , extraArgs :: BuildStage -> [String]
116 , expectedFailuresBuild :: Set PackageName
118 , expectedFailuresBuild :: Set PackageName
117 , testWorkerThreads :: Int
119 , testWorkerThreads :: Int
118 -- ^ How many threads to spawn for running test suites.
120 -- ^ How many threads to spawn for running test suites.
Stackage/Util.hs+3−3
@@ -102,15 +102,15 @@ addCabalArgsOnlyGlobal rest
102 : "--package-db=global"
102 : "--package-db=global"
103 : rest
103 : rest
104
104
105−addCabalArgs :: BuildSettings -> [String] -> [String]
105+addCabalArgs :: BuildSettings -> BuildStage -> [String] -> [String]
106−addCabalArgs settings rest
106+addCabalArgs settings bs rest
107 = addCabalArgsOnlyGlobal
107 = addCabalArgsOnlyGlobal
108 $ ("--package-db=" ++ packageDir settings)
108 $ ("--package-db=" ++ packageDir settings)
109 : ("--libdir=" ++ libDir settings)
109 : ("--libdir=" ++ libDir settings)
110 : ("--bindir=" ++ binDir settings)
110 : ("--bindir=" ++ binDir settings)
111 : ("--datadir=" ++ dataDir settings)
111 : ("--datadir=" ++ dataDir settings)
112 : ("--docdir=" ++ docDir settings)
112 : ("--docdir=" ++ docDir settings)
113− : extraArgs settings ++ rest
113+ : extraArgs settings bs ++ rest
114
114
115-- | Modified environment that adds our sandboxed bin folder to PATH.
115-- | Modified environment that adds our sandboxed bin folder to PATH.
116getModifiedEnv :: BuildSettings -> IO [(String, String)]
116getModifiedEnv :: BuildSettings -> IO [(String, String)]