File tree 2 files changed +18
-1
lines changed
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
281
281
distinct from ` pkgs.haskell.lib ` in the current Nixpkgs Haskell
282
282
Infrastructure.
283
283
284
- ### collectComponents and collectComponents'
284
+ ### collectComponents, collectComponents'
285
285
286
286
Extracts a selection of components from a Haskell [ package set] ( #package-set ) .
287
287
@@ -316,6 +316,12 @@ tests = collectComponents "tests" (package: package.identifier.name == "mypackag
316
316
Will result in moving derivations from ` hsPkgs.mypackage.components.tests.unit-tests `
317
317
to ` tests.mypackage.unit-tests ` .
318
318
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
+
319
325
#### check
320
326
321
327
This 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;
161
161
# myTests = collectComponents' "tests" myHaskellPackages;
162
162
collectComponents' = group : collectComponents group ( _ : true ) ;
163
163
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
+
164
175
# Replacement for lib.cleanSourceWith that has a subDir argument.
165
176
inherit ( import ./clean-source-with.nix { inherit lib ; } ) cleanSourceWith canCleanSource ;
166
177
You can’t perform that action at this time.
0 commit comments