@@ -15,13 +15,13 @@ concurrency:
1515 cancel-in-progress : true
1616
1717jobs :
18- linux :
19- name : Haskell-CI - Linux - ${{ matrix.ghc-version }}
18+ test-with-cabal :
19+ name : Haskell-CI - Linux - cabal - ${{ matrix.ghc-version }}
2020
2121 strategy :
2222 matrix :
2323 ghc-version : [latest, 9.12, "9.10", 9.8, 9.6]
24- os : [ubuntu-24.04 ]
24+ os : [ubuntu-latest ]
2525 fail-fast : false
2626
2727 runs-on : ${{ matrix.os }}
4343 with :
4444 key : ${{ matrix.os }}-${{ matrix.ghc-version }}-${{ github.sha }}
4545 path : ~/.cabal/store
46+
47+
48+ test-with-stack :
49+ name : Stack
50+ runs-on : ${{ matrix.os }}
51+ strategy :
52+ fail-fast : false
53+ matrix :
54+ os : [ubuntu-latest]
55+ resolver : [lts-22, lts-23, nightly]
56+ ghc-version : [latest, 9.12, "9.10", 9.8, 9.6]
57+
58+ env :
59+ STACK_ARGS : ' --resolver ${{ matrix.resolver }} --system-ghc'
60+ cache-version : v0 # bump up this version to invalidate currently stored cache
61+ steps :
62+ - uses : actions/checkout@v4
63+
64+ - uses : haskell-actions/setup@v2
65+ id : setup-haskell-cabal
66+ name : Setup Haskell
67+ with :
68+ ghc-version : ${{ matrix.ghc }}
69+ enable-stack : true
70+ stack-version : ${{ matrix.stack || 'latest' }}
71+
72+ - name : Cache
73+ id : cache
74+ uses : actions/cache@v4
75+ with :
76+ path : |
77+ ${{ steps.setup-haskell-cabal.outputs.stack-root }}
78+ .stack-work
79+ key : ${{ runner.os }}-${{ matrix.resolver }}-${{ env.cache-version }}
80+ restore-keys : |
81+ ${{ runner.os }}-${{ matrix.resolver }}-${{ env.cache-version }}
82+ - name : Reset modtime
83+ run : |
84+ set -ex
85+ curl -sSL https://raw.githubusercontent.com/lehins/utils/master/haskell/git-modtime/git-modtime.hs -o git-modtime.hs
86+ runhaskell -- git-modtime.hs -f .stack-work-root/tree-contents.txt
87+ - name : Build
88+ run : |
89+ set -ex
90+ stack $STACK_ARGS test --no-run-tests --bench --no-run-benchmarks --haddock --no-haddock-deps
91+ - name : Test
92+ env :
93+ COVERALLS_REPO_TOKEN : ${{ secrets.COVERALLS_REPO_TOKEN }}
94+ run : |
95+ set -ex
96+ if [ "${{ matrix.os }}.${{ matrix.resolver }}" == "Ubuntu-latest.lts-23" ] && [ -n "${COVERALLS_REPO_TOKEN}" ]; then
97+ stack $STACK_ARGS test --coverage
98+ stack $STACK_ARGS hpc report --all
99+ curl -L https://github.com/rubik/stack-hpc-coveralls/releases/download/v0.0.7.0/shc-Linux-X64.tar.bz2 | tar xj shc
100+ ./shc --repo-token="$COVERALLS_REPO_TOKEN" --partial-coverage --fetch-coverage combined custom
101+ else
102+ stack $STACK_ARGS test
103+ fi
0 commit comments