9595 # 9.10.3 is broken on windows
9696 - os : windows-latest
9797 ghc : " 9.10"
98+ env :
99+ # We choose a very short build directory, as we run into long path issues on windows.
100+ # See cabal tracking issue https://github.com/haskell/cabal/issues/11395
101+ # We can't set the `--builddir` via `v2-configure` as cabal doesn't support this.
102+ # https://github.com/haskell/cabal/issues/5271
103+ CABAL_ARGS : " --builddir b"
98104
99105 steps :
100106 - uses : actions/checkout@v3
@@ -105,7 +111,7 @@ jobs:
105111 os : ${{ runner.os }}
106112
107113 - name : Build
108- run : cabal build all
114+ run : cabal build ${CABAL_ARGS} all
109115
110116 - name : Set test options
111117 # See https://github.com/ocharles/tasty-rerun/issues/22 for why we need
@@ -116,161 +122,161 @@ jobs:
116122
117123 - if : matrix.test
118124 name : Test hls-graph
119- run : cabal test hls-graph
125+ run : cabal test ${CABAL_ARGS} hls-graph
120126
121127 - if : needs.pre_job.outputs.should_skip_ghcide != 'true' && matrix.test
122128 name : Test ghcide
123129 # run the tests without parallelism to avoid running out of memory
124- run : cabal test ghcide-tests || cabal test ghcide-tests
130+ run : cabal test ${CABAL_ARGS} ghcide-tests || cabal test ${CABAL_ARGS} ghcide-tests
125131
126132 - if : matrix.test
127133 name : Test hls-plugin-api
128- run : cabal test hls-plugin-api || cabal test hls-plugin-api
134+ run : cabal test ${CABAL_ARGS} hls-plugin-api || cabal test ${CABAL_ARGS} hls-plugin-api
129135
130136 - if : matrix.test
131137 name : Test func-test suite
132138 env :
133139 HLS_TEST_EXE : hls
134140 HLS_WRAPPER_TEST_EXE : hls-wrapper
135- run : cabal test func-test || cabal test func-test
141+ run : cabal test ${CABAL_ARGS} func-test || cabal test ${CABAL_ARGS} func-test
136142
137143 - if : matrix.test
138144 name : Test wrapper-test suite
139145 env :
140146 HLS_TEST_EXE : hls
141147 HLS_WRAPPER_TEST_EXE : hls-wrapper
142- run : cabal test wrapper-test
148+ run : cabal test ${CABAL_ARGS} wrapper-test
143149
144150 - if : matrix.test
145151 name : Test hls-refactor-plugin
146- run : cabal test hls-refactor-plugin-tests || cabal test hls-refactor-plugin-tests
152+ run : cabal test ${CABAL_ARGS} hls-refactor-plugin-tests || cabal test ${CABAL_ARGS} hls-refactor-plugin-tests
147153
148154 # TODO enable when it supports 9.10
149- - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.10.2'
155+ - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.14' && matrix.ghc != '9. 10.2'
150156 name : Test hls-floskell-plugin
151- run : cabal test hls-floskell-plugin-tests || cabal test hls-floskell-plugin-tests
157+ run : cabal test ${CABAL_ARGS} hls-floskell-plugin-tests || cabal test ${CABAL_ARGS} hls-floskell-plugin-tests
152158
153159 - if : matrix.test
154160 name : Test hls-class-plugin
155- run : cabal test hls-class-plugin-tests || cabal test hls-class-plugin-tests
161+ run : cabal test ${CABAL_ARGS} hls-class-plugin-tests || cabal test ${CABAL_ARGS} hls-class-plugin-tests
156162
157163 - if : matrix.test
158164 name : Test hls-pragmas-plugin
159- run : cabal test hls-pragmas-plugin-tests || cabal test hls-pragmas-plugin-tests
165+ run : cabal test ${CABAL_ARGS} hls-pragmas-plugin-tests || cabal test ${CABAL_ARGS} hls-pragmas-plugin-tests
160166
161167 - if : matrix.test
162168 name : Test hls-eval-plugin
163- run : cabal test hls-eval-plugin-tests || cabal test hls-eval-plugin-tests
169+ run : cabal test ${CABAL_ARGS} hls-eval-plugin-tests || cabal test ${CABAL_ARGS} hls-eval-plugin-tests
164170
165171 # TODO enable when it supports 9.10
166- - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.10.2'
172+ - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.14' && matrix.ghc != '9. 10.2'
167173 name : Test hls-splice-plugin
168- run : cabal test hls-splice-plugin-tests || cabal test hls-splice-plugin-tests
174+ run : cabal test ${CABAL_ARGS} hls-splice-plugin-tests || cabal test ${CABAL_ARGS} hls-splice-plugin-tests
169175
170- - if : matrix.test && matrix.ghc != '9.12'
176+ - if : matrix.test && matrix.ghc != '9.12' && matrix.ghc != '9.14'
171177 name : Test hls-stan-plugin
172- run : cabal test hls-stan-plugin-tests || cabal test hls-stan-plugin-tests
178+ run : cabal test ${CABAL_ARGS} hls-stan-plugin-tests || cabal test ${CABAL_ARGS} hls-stan-plugin-tests
173179
174- - if : matrix.test
180+ - if : matrix.test && matrix.ghc != '9.14'
175181 name : Test hls-stylish-haskell-plugin
176- run : cabal test hls-stylish-haskell-plugin-tests || cabal test hls-stylish-haskell-plugin-tests
182+ run : cabal test ${CABAL_ARGS} hls-stylish-haskell-plugin-tests || cabal test ${CABAL_ARGS} hls-stylish-haskell-plugin-tests
177183
178- - if : matrix.test
184+ - if : matrix.test && matrix.ghc != '9.14'
179185 name : Test hls-ormolu-plugin
180- run : cabal test hls-ormolu-plugin-tests || cabal test hls-ormolu-plugin-tests
186+ run : cabal test ${CABAL_ARGS} hls-ormolu-plugin-tests || cabal test ${CABAL_ARGS} hls-ormolu-plugin-tests
181187
182- - if : matrix.test
188+ - if : matrix.test && matrix.ghc != '9.14'
183189 name : Test hls-fourmolu-plugin
184- run : cabal test hls-fourmolu-plugin-tests || cabal test hls-fourmolu-plugin-tests
190+ run : cabal test ${CABAL_ARGS} hls-fourmolu-plugin-tests || cabal test ${CABAL_ARGS} hls-fourmolu-plugin-tests
185191
186192 - if : matrix.test
187193 name : Test hls-explicit-imports-plugin test suite
188- run : cabal test hls-explicit-imports-plugin-tests || cabal test hls-explicit-imports-plugin-tests
194+ run : cabal test ${CABAL_ARGS} hls-explicit-imports-plugin-tests || cabal test ${CABAL_ARGS} hls-explicit-imports-plugin-tests
189195
190196 - if : matrix.test
191197 name : Test hls-call-hierarchy-plugin test suite
192- run : cabal test hls-call-hierarchy-plugin-tests || cabal test hls-call-hierarchy-plugin-tests
198+ run : cabal test ${CABAL_ARGS} hls-call-hierarchy-plugin-tests || cabal test ${CABAL_ARGS} hls-call-hierarchy-plugin-tests
193199
194200 - if : matrix.test && matrix.os != 'windows-latest'
195201 name : Test hls-rename-plugin test suite
196- run : cabal test hls-rename-plugin-tests || cabal test hls-rename-plugin-tests
202+ run : cabal test ${CABAL_ARGS} hls-rename-plugin-tests || cabal test ${CABAL_ARGS} hls-rename-plugin-tests
197203
198- # TODO enable when it supports 9.10
199- - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.10.2'
204+ # Hlint will never work on GHC 9.10
205+ - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.14' && matrix.ghc != '9. 10.2'
200206 name : Test hls-hlint-plugin test suite
201- run : cabal test hls-hlint-plugin-tests || cabal test hls-hlint-plugin-tests
207+ run : cabal test ${CABAL_ARGS} hls-hlint-plugin-tests || cabal test ${CABAL_ARGS} hls-hlint-plugin-tests
202208
203209 - if : matrix.test
204210 name : Test hls-module-name-plugin test suite
205- run : cabal test hls-module-name-plugin-tests || cabal test hls-module-name-plugin-tests
211+ run : cabal test ${CABAL_ARGS} hls-module-name-plugin-tests || cabal test ${CABAL_ARGS} hls-module-name-plugin-tests
206212
207213 - if : matrix.test
208214 name : Test hls-alternate-number-format-plugin test suite
209- run : cabal test hls-alternate-number-format-plugin-tests || cabal test hls-alternate-number-format-plugin-tests
215+ run : cabal test ${CABAL_ARGS} hls-alternate-number-format-plugin-tests || cabal test ${CABAL_ARGS} hls-alternate-number-format-plugin-tests
210216
211217 - if : matrix.test
212218 name : Test hls-qualify-imported-names-plugin test suite
213- run : cabal test hls-qualify-imported-names-plugin-tests || cabal test hls-qualify-imported-names-plugin-tests
219+ run : cabal test ${CABAL_ARGS} hls-qualify-imported-names-plugin-tests || cabal test ${CABAL_ARGS} hls-qualify-imported-names-plugin-tests
214220
215221 - if : matrix.test
216222 name : Test hls-code-range-plugin test suite
217- run : cabal test hls-code-range-plugin-tests || cabal test hls-code-range-plugin-tests
223+ run : cabal test ${CABAL_ARGS} hls-code-range-plugin-tests || cabal test ${CABAL_ARGS} hls-code-range-plugin-tests
218224
219225 - if : matrix.test
220226 name : Test hls-change-type-signature test suite
221- run : cabal test hls-change-type-signature-plugin-tests || cabal test hls-change-type-signature-plugin-tests
227+ run : cabal test ${CABAL_ARGS} hls-change-type-signature-plugin-tests || cabal test ${CABAL_ARGS} hls-change-type-signature-plugin-tests
222228
223229 - if : matrix.test
224230 name : Test hls-gadt-plugin test suit
225- run : cabal test hls-gadt-plugin-tests || cabal test hls-gadt-plugin-tests
231+ run : cabal test ${CABAL_ARGS} hls-gadt-plugin-tests || cabal test ${CABAL_ARGS} hls-gadt-plugin-tests
226232
227233 - if : matrix.test
228234 name : Test hls-explicit-fixity-plugin test suite
229- run : cabal test hls-explicit-fixity-plugin-tests || cabal test hls-explicit-fixity-plugin-tests
235+ run : cabal test ${CABAL_ARGS} hls-explicit-fixity-plugin-tests || cabal test ${CABAL_ARGS} hls-explicit-fixity-plugin-tests
230236
231237 - if : matrix.test
232238 name : Test hls-explicit-record-fields-plugin test suite
233- run : cabal test hls-explicit-record-fields-plugin-tests || cabal test hls-explicit-record-fields-plugin-tests
239+ run : cabal test ${CABAL_ARGS} hls-explicit-record-fields-plugin-tests || cabal test ${CABAL_ARGS} hls-explicit-record-fields-plugin-tests
234240
235241 # versions need to be limited since the tests depend on cabal-fmt which only builds with ghc <9.10
236- - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.10.2'
242+ - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.14' && matrix.ghc != '9. 10.2'
237243 name : Test hls-cabal-fmt-plugin test suite
238- run : cabal test hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests || cabal test hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests
244+ run : cabal test ${CABAL_ARGS} hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests || cabal test ${CABAL_ARGS} hls-cabal-fmt-plugin-tests --flag=isolateCabalfmtTests
239245
240- - if : matrix.test && matrix.ghc != '9.12'
246+ - if : matrix.test && matrix.ghc != '9.12' && matrix.ghc != '9.14'
241247 name : Test hls-cabal-gild-plugin test suite
242- run : cabal test hls-cabal-gild-plugin-tests --flag=isolateCabalGildTests || cabal test hls-cabal-gild-plugin-tests --flag=isolateCabalGildTests
248+ run : cabal test ${CABAL_ARGS} hls-cabal-gild-plugin-tests --flag=isolateCabalGildTests || cabal test ${CABAL_ARGS} hls-cabal-gild-plugin-tests --flag=isolateCabalGildTests
243249
244250 - if : matrix.test
245251 name : Test hls-cabal-plugin test suite
246- run : cabal test hls-cabal-plugin-tests || cabal test hls-cabal-plugin-tests
252+ run : cabal test ${CABAL_ARGS} hls-cabal-plugin-tests || cabal test ${CABAL_ARGS} hls-cabal-plugin-tests
247253
248254 # TODO enable when it supports 9.10
249- - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.10.2'
255+ - if : matrix.test && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.14' && matrix.ghc != '9. 10.2'
250256 name : Test hls-retrie-plugin test suite
251- run : cabal test hls-retrie-plugin-tests || cabal test hls-retrie-plugin-tests
257+ run : cabal test ${CABAL_ARGS} hls-retrie-plugin-tests || cabal test ${CABAL_ARGS} hls-retrie-plugin-tests
252258
253259 - if : matrix.test
254260 name : Test hls-overloaded-record-dot-plugin test suite
255- run : cabal test hls-overloaded-record-dot-plugin-tests || cabal test hls-overloaded-record-dot-plugin-tests
261+ run : cabal test ${CABAL_ARGS} hls-overloaded-record-dot-plugin-tests || cabal test ${CABAL_ARGS} hls-overloaded-record-dot-plugin-tests
256262
257263 - if : matrix.test
258264 name : Test hls-semantic-tokens-plugin test suite
259- run : cabal test hls-semantic-tokens-plugin-tests || cabal test hls-semantic-tokens-plugin-tests
265+ run : cabal test ${CABAL_ARGS} hls-semantic-tokens-plugin-tests || cabal test ${CABAL_ARGS} hls-semantic-tokens-plugin-tests
260266
261267 - if : matrix.test
262268 name : Test hls-notes-plugin test suite
263- run : cabal test hls-notes-plugin-tests || cabal test hls-notes-plugin-tests
269+ run : cabal test ${CABAL_ARGS} hls-notes-plugin-tests || cabal test ${CABAL_ARGS} hls-notes-plugin-tests
264270
265271 # The plugin tutorial is only compatible with 9.6 and 9.8.
266272 # No particular reason, just to avoid excessive CPP.
267- - if : matrix.test && matrix.ghc != '9.4' && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.10.2'
273+ - if : matrix.test && matrix.ghc != '9.4' && matrix.ghc != '9.10' && matrix.ghc != '9.12' && matrix.ghc != '9.14' && matrix.ghc != '9. 10.2'
268274 name : Compile the plugin-tutorial
269- run : cabal build plugin-tutorial
275+ run : cabal build ${CABAL_ARGS} plugin-tutorial
270276
271277 - if : matrix.test
272278 name : Test hls-signature-help-plugin test suite
273- run : cabal test hls-signature-help-plugin-tests || cabal test hls-signature-help-plugin-tests
279+ run : cabal test ${CABAL_ARGS} hls-signature-help-plugin-tests || cabal test ${CABAL_ARGS} hls-signature-help-plugin-tests
274280
275281 test_post_job :
276282 if : always()
0 commit comments