Skip to content

Commit

Permalink
Move more CI to 20.09 (attempt 2) (input-output-hk#975)
Browse files Browse the repository at this point in the history
* Update default nixpkgs to 20.09

* Move more CI to work on 20.09 by default

* IFD level 1

* Use nixpkgs 20.03 emscripten (needed for ghcjs)

* Add missing materialized files

* Add missing materialized files

* Fix for ghc 8.8 build on darwin

* Fix for ghcjs 8.8 build on darwin

* Fix hls stack test eval for ghc810220201118

* ifdLevel 2

* Oops: accidentally turned on tests for experimental GHC

* Revert "Fix hls stack test eval for ghc810220201118"

This reverts commit b405cd7.

* ifdLevel 3

* Disable GHC 8.6.5 windows cross on nixpkgs 20.09

* Update supported GHC doc with a table

* Add emscripten comment

Co-authored-by: Hamish Mackenzie <[email protected]>
  • Loading branch information
michaelpj and hamishmack authored Dec 17, 2020
1 parent b8584ac commit 738af22
Show file tree
Hide file tree
Showing 26 changed files with 2,465 additions and 48 deletions.
10 changes: 5 additions & 5 deletions ci.nix
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,12 @@
# Update supported-ghc-versions.md to reflect any changes made here.
{
ghc865 = true;
} // nixpkgs.lib.optionalAttrs (nixpkgsName == "R2003") {
} // nixpkgs.lib.optionalAttrs (nixpkgsName == "R2009") {
ghc883 = false;
ghc884 = true;
ghc8101 = false;
ghc8102 = true;
ghc810220201118 = false;
} // nixpkgs.lib.optionalAttrs (nixpkgsName == "R2009") {
ghc8102 = true;
});
systems = nixpkgs: nixpkgs.lib.filterAttrs (_: v: builtins.elem v supportedSystems) {
# I wanted to take these from 'lib.systems.examples', but apparently there isn't one for linux!
Expand All @@ -42,9 +40,11 @@
# We need to use the actual nixpkgs version we're working with here, since the values
# of 'lib.systems.examples' are not understood between all versions
let lib = nixpkgs.lib;
in lib.optionalAttrs (nixpkgsName == "R2003" && (__elem compiler-nix-name ["ghc865" "ghc884"])) {
in lib.optionalAttrs (nixpkgsName == "R2009" && (__elem compiler-nix-name ["ghc865" "ghc884"])) {
inherit (lib.systems.examples) ghcjs;
} // lib.optionalAttrs (system == "x86_64-linux" && (nixpkgsName == "R2009" || (!(__elem compiler-nix-name ["ghc8101" "ghc8102" "ghc810220201118"])))) {
} // lib.optionalAttrs (system == "x86_64-linux" && (
(nixpkgsName == "R2009" && __elem compiler-nix-name ["ghc8101" "ghc8102" "ghc810220201118"])
|| (nixpkgsName == "R2003" && __elem compiler-nix-name ["ghc865"]))) {
# Windows cross compilation is currently broken on macOS
inherit (lib.systems.examples) mingwW64;
} // lib.optionalAttrs (system == "x86_64-linux") {
Expand Down
52 changes: 26 additions & 26 deletions docs/reference/supported-ghc-versions.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
# Supported GHC Versions

The following versions of GHC built on the CI servers and should be included
in the binary cache (for the default haskell.nix `nixpkgs`).

* 8.6.5 `compiler-nix-name = "ghc865";`
* 8.8.3 `compiler-nix-name = "ghc883";`
* 8.8.4 `compiler-nix-name = "ghc884";`
* 8.10.1 `compiler-nix-name = "ghc8101";`
* 8.10.2 `compiler-nix-name = "ghc8102";`

Full test suite is run against 8.6.5, 8.8.4 and 8.10.2.

See [ci.nix](https://github.com/input-output-hk/haskell.nix/blob/master/ci.nix)
for the list of tested GHC versions.

The following GHC versions are not included in CI and will not be cached:

* 8.4.4 `compiler-nix-name = "ghc844";`
* 8.6.1 `compiler-nix-name = "ghc861";`
* 8.6.2 `compiler-nix-name = "ghc862";`
* 8.6.3 `compiler-nix-name = "ghc863";`
* 8.6.4 `compiler-nix-name = "ghc864";`
* 8.8.1 `compiler-nix-name = "ghc881";`
* 8.8.2 `compiler-nix-name = "ghc882";`

See [overlays/bootstrap.nix](https://github.com/input-output-hk/haskell.nix/blob/master/overlays/bootstrap.nix)
for a list of all the valid `compiler-nix-names`.
This table shows which versions of GHC are defined, built by CI, and tested.
If you use a combination of nixpkgs version and GHC version which is built by our CI, you should get cache hits from our cache.

The "nixpkgs versions" refer to the versions that `haskell.nix` provides; if you use your own version of nixpkgs you will likely not get cache hit

| Nixpkgs version | GHC version | Defined? | Built? | Tested? |
| --------------- | ------------- | -------- | ------ | ------- |
| 20.03 | 8.4.4 | Y | N | N |
| 20.03 | 8.6.{1,2,3,4} | Y | N | N |
| 20.03 | 8.6.5 | Y | Y | Y |
| 20.03 | 8.8.{1,2,3} | Y | N | N |
| 20.03 | 8.8.4 | Y | N | N |
| 20.03 | 8.10.1 | Y | N | N |
| 20.03 | 8.10.2 | Y | N | N |
| 20.09 | 8.4.4 | Y | N | N |
| 20.09 | 8.6.{1,2,3,4} | Y | N | N |
| 20.09 | 8.6.5 | Y | Y | Y |
| 20.09 | 8.8.{1,2} | Y | N | N |
| 20.09 | 8.8.3 | Y | Y | N |
| 20.09 | 8.8.4 | Y | Y | Y |
| 20.09 | 8.10.1 | Y | Y | N |
| 20.09 | 8.10.2 | Y | Y | Y |

See [ci.nix](https://github.com/input-output-hk/haskell.nix/blob/master/ci.nix) for the source of truth about what is built and tested.

See [overlays/bootstrap.nix](https://github.com/input-output-hk/haskell.nix/blob/master/overlays/bootstrap.nix) for a list of all the valid `compiler-nix-names`.

See also: [Instructions on adding new GHC versions](../dev/adding-new-ghc.md).

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 738af22

Please sign in to comment.