@@ -11,22 +11,59 @@ jobs:
11
11
strategy :
12
12
fail-fast : false
13
13
matrix :
14
- # Add more elements to this list to run multiple instances of the build in CI. Increasing the
15
- # number instances is a good way to trigger flaky build failures
16
- n : [1]
17
-
18
- ghc : ["8.10.7"]
19
- os : [ubuntu-latest, macos-latest, windows-latest]
20
-
14
+ ghc :
15
+ - " 8.0.2"
16
+ - " 8.2.2"
17
+ - " 8.4.4"
18
+ - " 8.6.5"
19
+ - " 8.8.4"
20
+ - " 8.10.7"
21
+ - " 9.0.2"
22
+ - " 9.2.8"
23
+ - " 9.4.8"
24
+ - " 9.6.6"
25
+ - " 9.8.4"
26
+ - " 9.10.1"
27
+ - " 9.12.1"
28
+ # FIXME: Add windows-latest back to CI once it is passing.
29
+ os : [ubuntu-latest]
30
+
31
+ # Action fails to install GHC < 8.10 on OSX with a generic error
32
+ # messsage:
33
+ #
34
+ # Error: All install methods for ghc 8.0.2 failed
35
+ #
36
+ # On the other hand, 8.10 and 9.0 fail due to LLVM:
37
+ #
38
+ # Warning: Couldn't figure out LLVM version!
39
+ # Make sure you have installed LLVM between [9 and 13)
40
+ include :
41
+ - {ghc: "8.0.2" , os: "macos-13"}
42
+ - {ghc: "8.2.2" , os: "macos-13"}
43
+ - {ghc: "8.4.4" , os: "macos-13"}
44
+ - {ghc: "8.6.5" , os: "macos-13"}
45
+ - {ghc: "8.8.4" , os: "macos-13"}
46
+ - {ghc: "8.10.7", os: "macos-13"}
47
+ - {ghc: "9.0.2" , os: "macos-13"}
48
+ - {ghc: "9.2.8" , os: "macos-latest"}
49
+ - {ghc: "9.4.8" , os: "macos-latest"}
50
+ - {ghc: "9.6.6" , os: "macos-latest"}
51
+ - {ghc: "9.8.4" , os: "macos-latest"}
52
+ - {ghc: "9.10.1", os: "macos-latest"}
53
+ - {ghc: "9.12.1", os: "macos-latest"}
21
54
env :
22
55
# OpenSSL is installed in a non-standard location in MacOS. See
23
56
# https://github.com/actions/virtual-environments/blob/main/images/macos/macos-latest-Readme.md
24
57
PKG_CONFIG_PATH :
${{ (matrix.os == 'macos-latest' && '/usr/lib/pkgconfig:/usr/local/opt/[email protected] /lib/pkgconfig') || (matrix.os == 'ubuntu-latest' && '/usr/lib/pkgconfig:/usr/local/lib/pkgconfig') || '' }}
25
-
58
+
26
59
# FIXME: this is arguably a bug, and pkg-config should return the right values!
27
60
LD_LIBRARY_PATH : ${{ (matrix.os != 'windows-latest' && '/usr/local/lib') || '' }}
28
61
29
62
steps :
63
+ - uses : haskell-actions/setup@v2
64
+ with :
65
+ ghc-version : ${{ matrix.ghc }}
66
+
30
67
- name : " WIN: Install System Dependencies via pacman (msys2)"
31
68
if : runner.os == 'Windows'
32
69
run : |
@@ -41,11 +78,12 @@ jobs:
41
78
automake `
42
79
libtool `
43
80
make
44
-
81
+
45
82
# this seems to break something. It _must_ come after the pacman setup
46
83
# above. It appears as if PATHEXT is set _after_ ghcup install ghc/cabal, and
47
84
# as such we'd need pacman.exe instead.
48
- - name : Setup Haskell
85
+ - name : " WIN: Setup Haskell"
86
+ if : runner.os == 'Windows'
49
87
run : |
50
88
# Use GHCUP to manage ghc/cabal
51
89
ghcup install ghc --set ${{ matrix.ghc }}
92
130
shell : bash
93
131
run : echo '${{ steps.cabal-store.outputs.cabal-store }}'
94
132
95
- - uses : actions/checkout@v2
133
+ - uses : actions/checkout@v4
96
134
97
135
- name : " [PowerShell] Add build script path"
98
136
if : runner.os == 'Windows'
@@ -138,7 +176,7 @@ jobs:
138
176
cat dist-newstyle/cache/plan.json | jq -r '."install-plan"[].id' | sort | uniq > dependencies.txt
139
177
140
178
- name : Cache Cabal store
141
- uses : actions/cache@v2
179
+ uses : actions/cache@v4
142
180
with :
143
181
path : ${{ steps.cabal-store.outputs.cabal-store }}
144
182
key : cache-${{ env.CACHE_VERSION }}-${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('dependencies.txt') }}
0 commit comments