Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move more CI to 20.09 (attempt 2) #975

Merged
merged 16 commits into from
Dec 17, 2020
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
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"])) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should flip this and only run ghcjs tests on a particular chosen GHC version. IDK.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also can't read here (for some reason I thought this was !elem)

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"]))) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure this change matches the commit message? This turns off 8.10 + 20.09 and 8.6.5 + 20.03, is that what you meant to do?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore me, I can't read.

# 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