Skip to content

Commit

Permalink
Merge pull request haskell#9722 from mpickering/wip/ci
Browse files Browse the repository at this point in the history
CI updates (drop 8.4.4, update old-ghcs, update bootstrap plans)
  • Loading branch information
mergify[bot] authored Feb 23, 2024
2 parents 9ddaa56 + a90d44f commit fb3f4d4
Show file tree
Hide file tree
Showing 15 changed files with 3,158 additions and 2,095 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/bootstrap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
ghc: ["8.10.7", "9.0.2", "9.2.7", "9.4.4"]
ghc: ["8.10.7", "9.0.2", "9.2.8", "9.4.8", "9.6.4", "9.8.1"]
include:
- os: macos-latest
ghc: "9.2.7"
ghc: "9.2.8"
name: Bootstrap ${{ matrix.os }} ghc-${{ matrix.ghc }}
runs-on: ${{ matrix.os }}
steps:
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ jobs:
strategy:
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
ghc: ["9.8.1", "9.6.3", "9.4.8", "9.2.8", "9.0.2", "8.10.7", "8.8.4", "8.6.5", "8.4.4"]
# If you remove something from here.. then add it to the old-ghcs job.
ghc: ["9.8.1", "9.6.3", "9.4.8", "9.2.8", "9.0.2", "8.10.7", "8.8.4", "8.6.5"]
exclude:
# corrupts GHA cache or the fabric of reality itself, see https://github.com/haskell/cabal/issues/8356
- os: "windows-latest"
Expand Down Expand Up @@ -236,7 +237,7 @@ jobs:
# they are not available in ppa/hvr. The ghcup installation
# needs `sudo` which is not available in the xenial container
ghc: ["8.8.4"]
extra-ghc: ["7.10.3", "7.8.4", "7.6.3", "7.4.2", "7.2.2", "7.0.4"]
extra-ghc: ["8.4.4", "8.2.2", "8.0.2", "7.10.3", "7.8.4", "7.6.3", "7.4.2", "7.2.2", "7.0.4"]

steps:

Expand Down
10 changes: 10 additions & 0 deletions bootstrap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,13 @@ in the same way as it is shown for Linux above. On a system with functional `cab

There are rules in the top-level `Makefile` for generation of these files.

# Updating Bootstrap Plans

In order to update the bootstrap plans on linux there is the convenient `./generate_bootstrap_plans`
script. You can modify this script with the GHC versions you want to generate the plans for and
then run it to generate the plans.

```
./generate_bootstrap_plans
```

2 changes: 1 addition & 1 deletion bootstrap/cabal-bootstrap-gen.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ executable cabal-bootstrap-gen
, aeson ^>=1.5.2.0 || ^>=2.0.3.0 || ^>=2.1.0.0
, base ^>=4.12.0.0 || ^>=4.13.0.0 || ^>=4.14.0.0 || ^>=4.15.0.0 || ^>=4.16.0.0 || ^>=4.17.0.0
, bytestring ^>=0.10.8.2 || ^>=0.11.0.0
, Cabal ^>=3.2.0.0 || ^>=3.4.1.0 || ^>=3.6.3.0 || ^>=3.10.1.0
, Cabal ^>=3.4.1.0 || ^>=3.6.3.0 || ^>=3.10.1.0
, Cabal-syntax ^>=3.10.1.0
, cabal-install-parsers ^>=0.3.0.1 || ^>=0.4.5 || ^>=0.6
, cabal-plan ^>=0.7.0.0
Expand Down
23 changes: 23 additions & 0 deletions bootstrap/generate_bootstrap_plans
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
nix build nixpkgs#jq.bin -o jq
PATH+=:$PWD/jq-bin/bin

ghcs_nix="https://gitlab.haskell.org/bgamari/ghcs-nix/-/archive/master/ghcs-nix-master.tar.gz"

nix build -f "$ghcs_nix" ghc-8_10_7 -o boot_ghc

run() {
local ver="$1"
local drv="ghc-$ver"
echo "$ver"
nix build -f "$ghcs_nix" $drv
(cd ../; rm -r dist-bootstrap; cabal --distdir=dist-bootstrap build --project-file=cabal.project.release --dry-run cabal-install:exe:cabal -w bootstrap/result/bin/ghc)
jq --sort-keys < ../dist-bootstrap/cache/plan.json > "plan-$ver.json"
cabal run --with-ghc-pkg $PWD/boot_ghc/bin/ghc-pkg -w $PWD/boot_ghc/bin/ghc -v0 cabal-bootstrap-gen -- "plan-$ver.json" | jq --sort-keys | tee "linux-$(echo $ver | tr "_" ".").json"
}

run "8_10_7"
run "9_0_2"
run "9_2_8"
run "9_4_8"
run "9_6_4"
run "9_8_1"
Loading

0 comments on commit fb3f4d4

Please sign in to comment.