88#
99# For more information, see https://github.com/haskell-CI/haskell-ci
1010#
11- # version: 0.19.20250821
11+ # version: 0.19.20260128
1212#
13- # REGENDATA ("0.19.20250821 ",["--config=cabal.haskell-ci","github","cabal.project"])
13+ # REGENDATA ("0.19.20260128 ",["--config=cabal.haskell-ci","github","cabal.project"])
1414#
1515name : Haskell-CI
1616on :
2020 pull_request :
2121 branches :
2222 - master
23+ merge_group :
24+ branches :
25+ - master
2326jobs :
2427 linux :
2528 name : Haskell-CI - Linux - ${{ matrix.compiler }}
@@ -32,16 +35,21 @@ jobs:
3235 strategy :
3336 matrix :
3437 include :
35- - compiler : ghc-9.14.0.20250819
38+ - compiler : ghc-9.14.1
3639 compilerKind : ghc
37- compilerVersion : 9.14.0.20250819
38- setup-method : ghcup-prerelease
40+ compilerVersion : 9.14.1
41+ setup-method : ghcup
3942 allow-failure : false
4043 - compiler : ghc-9.12.2
4144 compilerKind : ghc
4245 compilerVersion : 9.12.2
4346 setup-method : ghcup
4447 allow-failure : false
48+ - compiler : ghc-9.10.3
49+ compilerKind : ghc
50+ compilerVersion : 9.10.3
51+ setup-method : ghcup
52+ allow-failure : false
4553 - compiler : ghc-9.10.2
4654 compilerKind : ghc
4755 compilerVersion : 9.10.2
@@ -126,21 +134,6 @@ jobs:
126134 HCKIND : ${{ matrix.compilerKind }}
127135 HCNAME : ${{ matrix.compiler }}
128136 HCVER : ${{ matrix.compilerVersion }}
129- - name : Install GHC (GHCup prerelease)
130- if : matrix.setup-method == 'ghcup-prerelease'
131- run : |
132- "$HOME/.ghcup/bin/ghcup" config add-release-channel prereleases
133- "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
134- HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
135- HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
136- HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
137- echo "HC=$HC" >> "$GITHUB_ENV"
138- echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
139- echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
140- env :
141- HCKIND : ${{ matrix.compilerKind }}
142- HCNAME : ${{ matrix.compiler }}
143- HCVER : ${{ matrix.compilerVersion }}
144137 - name : Set PATH and environment variables
145138 run : |
146139 echo "$HOME/.cabal/bin" >> $GITHUB_PATH
@@ -151,7 +144,7 @@ jobs:
151144 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
152145 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
153146 echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
154- if [ $((HCNUMVER >= 91400)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE= false" >> "$GITHUB_ENV" ; fi
147+ echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
155148 echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
156149 env :
157150 HCKIND : ${{ matrix.compilerKind }}
@@ -179,18 +172,6 @@ jobs:
179172 repository hackage.haskell.org
180173 url: http://hackage.haskell.org/
181174 EOF
182- if $HEADHACKAGE; then
183- cat >> $CABAL_CONFIG <<EOF
184- repository head.hackage.ghc.haskell.org
185- url: https://ghc.gitlab.haskell.org/head.hackage/
186- secure: True
187- root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
188- 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
189- f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
190- key-threshold: 3
191- active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
192- EOF
193- fi
194175 cat >> $CABAL_CONFIG <<EOF
195176 program-default-options
196177 ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -214,14 +195,14 @@ jobs:
214195 chmod a+x $HOME/.cabal/bin/cabal-plan
215196 cabal-plan --version
216197 - name : checkout
217- uses : actions/checkout@v4
198+ uses : actions/checkout@v6
218199 with :
219200 path : source
220201 - name : initial cabal.project for sdist
221202 run : |
222203 touch cabal.project
223- echo "packages: $GITHUB_WORKSPACE/source/." >> cabal.project
224- if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/samples" >> cabal.project ; fi
204+ if [ $((HCNUMVER < 91000 || HCNUMVER >= 91003)) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/." >> cabal.project ; fi
205+ if [ $((HCNUMVER >= 80400 && HCNUMVER < 91003 || HCNUMVER >= 91200 )) -ne 0 ] ; then echo "packages: $GITHUB_WORKSPACE/source/samples" >> cabal.project ; fi
225206 cat cabal.project
226207 - name : sdist
227208 run : |
@@ -240,26 +221,23 @@ jobs:
240221 rm -f cabal.project cabal.project.local
241222 touch cabal.project
242223 touch cabal.project.local
243- echo "packages: ${PKGDIR_github}" >> cabal.project
244- if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then echo "packages: ${PKGDIR_github_samples}" >> cabal.project ; fi
245- echo "package github" >> cabal.project
246- echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
247- if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then echo "package github-samples" >> cabal.project ; fi
248- if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
249- if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package github" >> cabal.project ; fi
250- if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
251- if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package github-samples" >> cabal.project ; fi
252- if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
224+ if [ $((HCNUMVER < 91000 || HCNUMVER >= 91003)) -ne 0 ] ; then echo "packages: ${PKGDIR_github}" >> cabal.project ; fi
225+ if [ $((HCNUMVER >= 80400 && HCNUMVER < 91003 || HCNUMVER >= 91200 )) -ne 0 ] ; then echo "packages: ${PKGDIR_github_samples}" >> cabal.project ; fi
226+ if [ $((HCNUMVER < 91000 || HCNUMVER >= 91003)) -ne 0 ] ; then echo "package github" >> cabal.project ; fi
227+ if [ $((HCNUMVER < 91000 || HCNUMVER >= 91003)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
228+ if [ $((HCNUMVER >= 80400 && HCNUMVER < 91003 || HCNUMVER >= 91200 )) -ne 0 ] ; then echo "package github-samples" >> cabal.project ; fi
229+ if [ $((HCNUMVER >= 80400 && HCNUMVER < 91003 || HCNUMVER >= 91200 )) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
230+ if [ $((HCNUMVER >= 90000 && HCNUMVER < 91000 || HCNUMVER >= 91003 )) -ne 0 ] ; then echo "package github" >> cabal.project ; fi
231+ if [ $((HCNUMVER >= 90000 && HCNUMVER < 91000 || HCNUMVER >= 91003 )) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
232+ if [ $((HCNUMVER >= 90000 && HCNUMVER < 91003 || HCNUMVER >= 91200 )) -ne 0 ] ; then echo "package github-samples" >> cabal.project ; fi
233+ if [ $((HCNUMVER >= 90000 && HCNUMVER < 91003 || HCNUMVER >= 91200 )) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
253234 cat >> cabal.project <<EOF
254235 constraints: github +openssl
255236 constraints: github-samples +openssl
256237 constraints: HsOpenSSL +use-pkg-config
257238 constraints: operational -buildExamples
258239 optimization: False
259240 EOF
260- if $HEADHACKAGE; then
261- echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
262- fi
263241 $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(github|github-samples)$/; }' >> cabal.project.local
264242 cat cabal.project
265243 cat cabal.project.local
@@ -268,7 +246,7 @@ jobs:
268246 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
269247 cabal-plan
270248 - name : restore cache
271- uses : actions/cache/restore@v4
249+ uses : actions/cache/restore@v5
272250 with :
273251 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
274252 path : ~/.cabal/store
@@ -285,13 +263,13 @@ jobs:
285263 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --write-ghc-environment-files=always
286264 - name : tests
287265 run : |
288- $ CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct
266+ if [ $((HCNUMVER < 91000 || HCNUMVER >= 91003)) -ne 0 ] ; then $ CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct ; fi
289267 - name : cabal check
290268 run : |
291- cd ${PKGDIR_github} || false
292- $ {CABAL} -vnormal check
293- if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then cd ${PKGDIR_github_samples} || false ; fi
294- if [ $((HCNUMVER >= 80400)) -ne 0 ] ; then ${CABAL} -vnormal check ; fi
269+ if [ $((HCNUMVER < 91000 || HCNUMVER >= 91003)) -ne 0 ] ; then cd ${PKGDIR_github} || false ; fi
270+ if [ $((HCNUMVER < 91000 || HCNUMVER >= 91003)) -ne 0 ] ; then $ {CABAL} -vnormal check ; fi
271+ if [ $((HCNUMVER >= 80400 && HCNUMVER < 91003 || HCNUMVER >= 91200 )) -ne 0 ] ; then cd ${PKGDIR_github_samples} || false ; fi
272+ if [ $((HCNUMVER >= 80400 && HCNUMVER < 91003 || HCNUMVER >= 91200 )) -ne 0 ] ; then ${CABAL} -vnormal check ; fi
295273 - name : haddock
296274 run : |
297275 if [ $((HCNUMVER >= 80600)) -ne 0 ] ; then $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all ; fi
@@ -301,7 +279,7 @@ jobs:
301279 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
302280 - name : save cache
303281 if : always()
304- uses : actions/cache/save@v4
282+ uses : actions/cache/save@v5
305283 with :
306284 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
307285 path : ~/.cabal/store
0 commit comments