Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/haskell-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,12 @@ jobs:
- name: prepare for constraint sets
run: |
rm -f cabal.project.local
- name: constraint set prefer-oldest
run: |
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --prefer-oldest all --dry-run
cabal-plan topo | sort
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --prefer-oldest --dependencies-only -j2 all
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --prefer-oldest all
- name: save cache
if: always()
uses: actions/cache/save@v4
Expand Down
17 changes: 10 additions & 7 deletions cabal.haskell-ci
Original file line number Diff line number Diff line change
Expand Up @@ -91,21 +91,24 @@ macos-jobs: ==8.10.*
-- Package will be build with different constraints.
-- This is useful to check compatibility with older versions of dependencies.

constraint-set deepseq-1.4
ghc: (>= 7.8 && <7.10) || == 8.2.2
constraints: deepseq ==1.4.*
constraints: binary installed
constraint-set prefer-oldest
-- we can limit GHC's and add extra constraints for each constraint-set
-- for haskell-ci itself, we don't.

-- ghc: (>= 7.8 && <7.10) || == 8.2.2
-- constraints: deepseq ==1.4.*

-- Constraint sets accept booleans for few steps, as the main script
-- Defaults are False.
-- These fields don't accept version ranges: you should rather create
-- another constraint set.

-- tests: False
-- run-tests: False
tests: False
run-tests: False
prefer-oldest: True
-- docspec: False
-- benchmarks: False
haddock: True
-- haddock: True

-- Copy over additional properties specified in a cabal.project file.
-- Possible values are:
Expand Down
2 changes: 1 addition & 1 deletion haskell-ci.cabal
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cabal-version: 2.2
name: haskell-ci
version: 0.19.20250506
version: 0.19.20250531
synopsis: Haskell CI script generator
description:
Script generator (@haskell-ci@) for
Expand Down
4 changes: 3 additions & 1 deletion haskell-ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -549,7 +549,9 @@ run_cmd $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
# constraint sets
put_info "constraint sets"
run_cmd rm -f cabal.project.local
put_info "constraint set deepseq-1.4"
put_info "constraint set prefer-oldest"
run_cmd $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks --dependencies-only -j all
run_cmd $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all


# Done
Expand Down
20 changes: 11 additions & 9 deletions src/HaskellCI/Config/ConstraintSet.hs
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ import HaskellCI.Newtypes
import HaskellCI.OptionsGrammar

data ConstraintSet = ConstraintSet
{ csName :: String
, csGhcVersions :: VersionRange
, csGhcjs :: Bool
, csConstraints :: [String] -- we parse these simply as strings
, csTests :: Bool
, csRunTests :: Bool
, csDocspec :: Bool
, csBenchmarks :: Bool
, csHaddock :: Bool
{ csName :: String
, csGhcVersions :: VersionRange
, csGhcjs :: Bool
, csConstraints :: [String] -- we parse these simply as strings
, csTests :: Bool
, csRunTests :: Bool
, csDocspec :: Bool
, csBenchmarks :: Bool
, csHaddock :: Bool
, csPreferOldest :: Bool
}
deriving (Show, Generic)

Expand All @@ -40,3 +41,4 @@ constraintSetGrammar name = ConstraintSet name
<*> C.booleanFieldDef "docspec" (field @"csDocspec") False
<*> C.booleanFieldDef "benchmarks" (field @"csBenchmarks") False
<*> C.booleanFieldDef "haddock" (field @"csHaddock") False
<*> C.booleanFieldDef "prefer-oldest" (field @"csPreferOldest") False
3 changes: 2 additions & 1 deletion src/HaskellCI/GitHub.hs
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,8 @@ makeGitHub _argv config@Config {..} gitconfig prj jobs@JobVersions {..} = do
let testFlag = if csTests cs then "--enable-tests" else "--disable-tests"
let benchFlag = if csBenchmarks cs then "--enable-benchmarks" else "--disable-benchmarks"
let constraintFlags = map (\x -> "--constraint='" ++ x ++ "'") (csConstraints cs)
let allFlags = unwords (testFlag : benchFlag : constraintFlags)
let preferFlags = if csPreferOldest cs then ["--prefer-oldest"] else []
let allFlags = unwords (testFlag : benchFlag : constraintFlags ++ preferFlags)

sh_cs $ "$CABAL v2-build $ARG_COMPILER " ++ allFlags ++ " all --dry-run"
sh_cs $ "cabal-plan topo | sort"
Expand Down
Loading