From 67e5c6713a78d140d4e68f55d078e08664484c4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Manuel=20B=C3=A4renz?=
 <Manuel Bärenz programming@manuelbaerenz.de>
Date: Sat, 16 Nov 2024 12:15:07 +0100
Subject: [PATCH] Build nix develop for all GHCs

---
 .github/workflows/ci.yml | 23 +++++++++++++++++++++--
 rhine/rhine.cabal        | 10 +++++-----
 2 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 132035d73..59d0b3721 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -133,10 +133,28 @@ jobs:
         run: nix flake check
       - name: Build all packages
         run: nix build --accept-flake-config
+
+  build-devshell:
+    name: Nix Flake Develop
+    needs:
+      - generateMatrix
+      - build-flake
+    strategy:
+      matrix: ${{ fromJSON(needs.generateMatrix.outputs.matrix) }}
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: cachix/install-nix-action@v30
+      - uses: DeterminateSystems/magic-nix-cache-action@v8
+      - uses: cachix/cachix-action@v15
+        with:
+          name: rhine
+          authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
       - name: Run tests
         run: |
-          nix develop --accept-flake-config -c cabal update
-          nix develop --accept-flake-config -c cabal test all
+          ghc="ghc$(echo ${{ matrix.ghc }} | tr -d '.')" # Removes the dot from the ghc version and prepends "ghc"
+          nix develop .#${ghc} --accept-flake-config -c cabal update
+          nix develop .#${ghc} --accept-flake-config -c cabal test all
 
   cabal-check:
     name: Check and format all cabal files
@@ -154,6 +172,7 @@ jobs:
     needs:
       - build-cabal
       - build-flake
+      - build-devshell
     runs-on:
       - ubuntu-latest
     steps:
diff --git a/rhine/rhine.cabal b/rhine/rhine.cabal
index 345f769d6..a9dc9a423 100644
--- a/rhine/rhine.cabal
+++ b/rhine/rhine.cabal
@@ -31,11 +31,11 @@ data-files:
   test/assets/*.txt
 
 tested-with:
-  ghc ==9.2.8
-  ghc ==9.4.7
-  ghc ==9.6.4
-  ghc ==9.8.2
-  ghc ==9.10.1
+  ghc ==9.2
+  ghc ==9.4
+  ghc ==9.6
+  ghc ==9.8
+  ghc ==9.10
 
 source-repository head
   type: git