File tree Expand file tree Collapse file tree 6 files changed +33
-19
lines changed Expand file tree Collapse file tree 6 files changed +33
-19
lines changed Original file line number Diff line number Diff line change @@ -292,6 +292,12 @@ jobs:
292292 - name : prepare for constraint sets
293293 run : |
294294 rm -f cabal.project.local
295+ - name : constraint set prefer-oldest
296+ run : |
297+ $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --prefer-oldest all --dry-run
298+ cabal-plan topo | sort
299+ $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --prefer-oldest --dependencies-only -j2 all
300+ $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --prefer-oldest all
295301 - name : save cache
296302 if : always()
297303 uses : actions/cache/save@v4
Original file line number Diff line number Diff line change @@ -91,21 +91,24 @@ macos-jobs: ==8.10.*
9191-- Package will be build with different constraints.
9292-- This is useful to check compatibility with older versions of dependencies.
9393
94- constraint-set deepseq-1.4
95- ghc: (>= 7.8 && <7.10) || == 8.2.2
96- constraints: deepseq ==1.4.*
97- constraints: binary installed
94+ constraint-set prefer-oldest
95+ -- we can limit GHC's and add extra constraints for each constraint-set
96+ -- for haskell-ci itself, we don't.
97+
98+ -- ghc: (>= 7.8 && <7.10) || == 8.2.2
99+ -- constraints: deepseq ==1.4.*
98100
99101 -- Constraint sets accept booleans for few steps, as the main script
100102 -- Defaults are False.
101103 -- These fields don't accept version ranges: you should rather create
102104 -- another constraint set.
103105
104- -- tests: False
105- -- run-tests: False
106+ tests: False
107+ run-tests: False
108+ prefer-oldest: True
106109 -- docspec: False
107110 -- benchmarks: False
108- haddock: True
111+ -- haddock: True
109112
110113-- Copy over additional properties specified in a cabal.project file.
111114-- Possible values are:
Original file line number Diff line number Diff line change 11cabal-version : 2.2
22name : haskell-ci
3- version : 0.19.20250506
3+ version : 0.19.20250531
44synopsis : Haskell CI script generator
55description :
66 Script generator (@haskell-ci@) for
Original file line number Diff line number Diff line change @@ -549,7 +549,9 @@ run_cmd $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
549549# constraint sets
550550put_info " constraint sets"
551551run_cmd rm -f cabal.project.local
552- put_info " constraint set deepseq-1.4"
552+ put_info " constraint set prefer-oldest"
553+ run_cmd $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --dependencies-only -j all
554+ run_cmd $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
553555
554556
555557# Done
Original file line number Diff line number Diff line change @@ -11,15 +11,16 @@ import HaskellCI.Newtypes
1111import HaskellCI.OptionsGrammar
1212
1313data ConstraintSet = ConstraintSet
14- { csName :: String
15- , csGhcVersions :: VersionRange
16- , csGhcjs :: Bool
17- , csConstraints :: [String ] -- we parse these simply as strings
18- , csTests :: Bool
19- , csRunTests :: Bool
20- , csDocspec :: Bool
21- , csBenchmarks :: Bool
22- , csHaddock :: Bool
14+ { csName :: String
15+ , csGhcVersions :: VersionRange
16+ , csGhcjs :: Bool
17+ , csConstraints :: [String ] -- we parse these simply as strings
18+ , csTests :: Bool
19+ , csRunTests :: Bool
20+ , csDocspec :: Bool
21+ , csBenchmarks :: Bool
22+ , csHaddock :: Bool
23+ , csPreferOldest :: Bool
2324 }
2425 deriving (Show , Generic )
2526
@@ -40,3 +41,4 @@ constraintSetGrammar name = ConstraintSet name
4041 <*> C. booleanFieldDef " docspec" (field @ " csDocspec" ) False
4142 <*> C. booleanFieldDef " benchmarks" (field @ " csBenchmarks" ) False
4243 <*> C. booleanFieldDef " haddock" (field @ " csHaddock" ) False
44+ <*> C. booleanFieldDef " prefer-oldest" (field @ " csPreferOldest" ) False
Original file line number Diff line number Diff line change @@ -497,7 +497,8 @@ makeGitHub _argv config@Config {..} gitconfig prj jobs@JobVersions {..} = do
497497 let testFlag = if csTests cs then " --enable-tests" else " --disable-tests"
498498 let benchFlag = if csBenchmarks cs then " --enable-benchmarks" else " --disable-benchmarks"
499499 let constraintFlags = map (\ x -> " --constraint='" ++ x ++ " '" ) (csConstraints cs)
500- let allFlags = unwords (testFlag : benchFlag : constraintFlags)
500+ let preferFlags = if csPreferOldest cs then [" --prefer-oldest" ] else []
501+ let allFlags = unwords (testFlag : benchFlag : constraintFlags ++ preferFlags)
501502
502503 sh_cs $ " $CABAL v2-build $ARG_COMPILER " ++ allFlags ++ " all --dry-run"
503504 sh_cs $ " cabal-plan topo | sort"
You can’t perform that action at this time.
0 commit comments