File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -281,7 +281,7 @@ Assorted functions for operating on [Haskell.nix][] data. This is
281281distinct from ` pkgs.haskell.lib ` in the current Nixpkgs Haskell
282282Infrastructure.
283283
284- ### collectComponents and collectComponents'
284+ ### collectComponents, collectComponents'
285285
286286Extracts a selection of components from a Haskell [ package set] ( #package-set ) .
287287
@@ -316,6 +316,12 @@ tests = collectComponents "tests" (package: package.identifier.name == "mypackag
316316Will result in moving derivations from ` hsPkgs.mypackage.components.tests.unit-tests `
317317to ` tests.mypackage.unit-tests ` .
318318
319+ ### collectChecks, collectChecks'
320+
321+ These are just like ` collectComponents ` and ` collectComponents' ` , except that they collect
322+ the ` checks ` attributes of packages (which aren't components, and so can't be collected
323+ by the other functions.
324+
319325#### check
320326
321327This function turns a derivation that builds a test into one to run it.
Original file line number Diff line number Diff line change @@ -161,6 +161,17 @@ with haskellLib;
161161 # myTests = collectComponents' "tests" myHaskellPackages;
162162 collectComponents' = group : collectComponents group ( _ : true ) ;
163163
164+ # Extracts a selection of 'checks' from a Haskell package set.
165+ #
166+ # This can be used to collect all the test runs in your project, so that can be run in CI.
167+ collectChecks = packageSel : haskellPackages :
168+ let packageFilter = name : package : ( package . isHaskell or false ) && packageSel package ;
169+ in recurseIntoAttrs ( lib . mapAttrs ( _ : p : p . checks ) ( lib . filterAttrs packageFilter haskellPackages ) ) ;
170+
171+ # Equivalent to collectChecks with (_: true) as selection function.
172+ # Useful for pre-filtered package-set.
173+ collectChecks' = collectChecks ( _ : true ) ;
174+
164175 # Replacement for lib.cleanSourceWith that has a subDir argument.
165176 inherit ( import ./clean-source-with.nix { inherit lib ; } ) cleanSourceWith canCleanSource ;
166177
You can’t perform that action at this time.
0 commit comments