@@ -135,7 +135,7 @@ jobs:
135135 MATRIX="$(jq -c '.' <<EOF
136136 {
137137 # The first version in this list is the version to be used for release
138- "ghc": ["9.8.2", "9. 10.1", "9.6.6"],
138+ "ghc": ["9.10.1", "9.6.6"],
139139 "cabal": ["3.12"],
140140 "os": ["ubuntu-22.04"],
141141 "use-freeze-file": ["false"],
@@ -153,7 +153,7 @@ jobs:
153153 else
154154 MATRIX="$(jq -c '.' <<EOF
155155 {
156- "ghc": ["9.8.2", "9. 10.1", "9.6.6"],
156+ "ghc": ["9.10.1", "9.6.6"],
157157 "cabal": ["3.12"],
158158 "os": ["ubuntu-22.04"],
159159 "use-freeze-file": ["false"],
@@ -247,9 +247,29 @@ jobs:
247247 # done
248248
249249 # work around for https://github.com/haskell/actions/issues/187
250- - name : Set permissions for .ghcup
251- if : startsWith(matrix.os, 'ubuntu-')
252- run : sudo chown -R $USER /usr/local/.ghcup
250+ - uses : actions/cache/restore@v4
251+ name : Restore ghc & cabal binaries cache
252+ id : ghc-cabal-cache
253+ env :
254+ key : ${{ runner.os }}-ghc-cabal
255+ with :
256+ path : |
257+ /home/runner/.ghcup
258+ key : ${{ env.key }}-${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('bin/cabal', 'bin/ghc') }}
259+ restore-keys : ${{ env.key }}-${{ matrix.os }}-${{ matrix.ghc }}-
260+
261+ - uses : actions/cache/restore@v4
262+ name : Restore dist-newstyle cache
263+ id : cabal-dist-cache
264+ with :
265+ path : |
266+ ~/.cabal/packages
267+ ~/.cabal/store
268+ dist-newstyle
269+ key : ${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.*', '*.cabal', 'src/**', 'test/**') }}
270+ restore-keys : |
271+ ${{ matrix.os }}-${{ matrix.ghc }}-
272+
253273 - name : Install GHC and Cabal
254274 id : setup
255275 uses : haskell-actions/setup@v2
@@ -263,6 +283,15 @@ jobs:
263283 echo "setup cabal-store: ${{ steps.setup.outputs.cabal-store }}"
264284 ghc --version
265285 cabal --version
286+
287+ - uses : actions/cache/save@v4
288+ name : Cache ghc & cabal binaries
289+ if : steps.ghc-cabal-cache.outputs.cache-hit != 'true'
290+ with :
291+ path : |
292+ /home/runner/.ghcup
293+ key : ${{ env.key }}-${{ matrix.os }}-${{ matrix.ghc }}-${{ hashFiles('bin/cabal', 'bin/ghc') }}
294+
266295 - name : Install non-Haskell dependencies (ubuntu)
267296 if : contains(matrix.os, 'ubuntu')
268297 run : sudo apt-get install -y libgflags-dev liblz4-dev libzstd-dev libsnappy-dev libbz2-dev libmpfr-dev
@@ -317,15 +346,12 @@ jobs:
317346 # dist cache
318347 # the cache-key forces uploading of cache at least once a day, which ensures that
319348 # upstream dependency changes are captured regularly.
320- - uses : actions/cache@v4
321- name : Cache dist-newstyle
349+ - uses : actions/cache/save @v4
350+ name : Save dist-newstyle cache
322351 with :
323352 path : |
324353 dist-newstyle
325- key : ${{ matrix.os }}-${{ matrix.ghc }}-${{ matrix.use-freeze-file }}-2-${{ hashFiles('cabal.*', '*.cabal', 'src/**', 'test/**') }}
326- restore-keys : |
327- ${{ matrix.os }}-${{ matrix.ghc }}-${{ matrix.use-freeze-file }}-2-
328- ${{ matrix.os }}-${{ matrix.ghc }}-
354+ key : ${{ steps.cabal-dist-cache.outputs.cache-primary-key }}
329355
330356 # Build
331357 - name : Delete Freeze file if it exists
0 commit comments