haskell.nix/release.nix
Michael Peyton Jones eb15db0450
Expose our nixpkgs pins by restructuring default.nix (#514)
* Remove unused (and broken) test files

* Make default.nix expose pinned nixpkgs

Also make `nixpkgs/default.nix` just an attribute set of sources.
This is simpler, and consistent with what e.g. `niv` does.

* Add backwards compatibility shim, and version argument to allow evolution in future

* Fix some missed things

* Fix and improve quickstart
2020-03-31 09:12:40 +08:00

25 lines
1020 B
Nix

# 'supportedSystems' restricts the set of systems that we will evaluate for. Useful when you're evaluting
# on a machine with e.g. no way to build the Darwin IFDs you need!
{ supportedSystems ? [ "x86_64-linux" "x86_64-darwin" ]
, ifdLevel ? 3 }:
let
inherit (import ./ci-lib.nix) stripAttrsForHydra filterDerivations;
genericPkgs = import (import ./nixpkgs/default.nix).nixpkgs-default {};
lib = genericPkgs.lib;
ci = import ./ci.nix { inherit supportedSystems ifdLevel; restrictEval = true; };
allJobs = stripAttrsForHydra (filterDerivations ci);
in allJobs // {
# On IOHK Hydra, "required" is a special job that updates the
# GitHub CI status.
required = genericPkgs.releaseTools.aggregate {
name = "haskell.nix-required";
meta.description = "All jobs required to pass CI";
# Hercules will require all of these, we just require the 1909 jobs
# to avoid stressing Hydra too much
constituents = lib.collect lib.isDerivation allJobs.R1909.linux.native;
};
}