11# This GitHub workflow config has been generated by a script via
22#
3- # haskell-ci 'github' '--haddock' '--github-patches' '.github/haskell-ci.patch' 'cabal.project'
3+ # haskell-ci 'github' '--timeout-minutes' '120' '-- haddock' '--github-patches' '.github/haskell-ci.patch' 'cabal.project'
44#
55# To regenerate the script (for example after adjusting tested-with) run
66#
77# haskell-ci regenerate
88#
99# For more information, see https://github.com/haskell-CI/haskell-ci
1010#
11- # version: 0.19.20250216
11+ # version: 0.19.20251105
1212#
13- # REGENDATA ("0.19.20250216 ",["github","--haddock","--github-patches",".github/haskell-ci.patch","cabal.project"])
13+ # REGENDATA ("0.19.20251105 ",["github","--timeout-minutes","120 ","--haddock","--github-patches",".github/haskell-ci.patch","cabal.project"])
1414#
1515name : Haskell-CI
1616on :
1717 - push
1818 - pull_request
19+ - merge_group
1920jobs :
2021 tools_changed :
2122 continue-on-error : true
22- runs-on : ubuntu-22 .04
23+ runs-on : ubuntu-24 .04
2324 outputs :
2425 should_skip : ${{ steps.skip_check.outputs.should_skip }}
2526 steps :
3637 if : ${{ needs.tools_changed.outputs.should_skip != 'true' }}
3738 runs-on : ubuntu-24.04
3839 timeout-minutes :
39- 60
40+ 120
4041 container :
4142 image : buildpack-deps:jammy
4243 continue-on-error : ${{ matrix.allow-failure }}
@@ -92,12 +93,12 @@ jobs:
9293 - name : Install GHCup
9394 run : |
9495 mkdir -p "$HOME/.ghcup/bin"
95- curl -sL https://downloads.haskell.org/ghcup/0.1.30.0 /x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
96+ curl -sL https://downloads.haskell.org/ghcup/0.1.50.1 /x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup"
9697 chmod a+x "$HOME/.ghcup/bin/ghcup"
9798 - name : Install cabal-install
9899 run : |
99- "$HOME/.ghcup/bin/ghcup" install cabal 3.14.1.1 || (cat "$HOME"/.ghcup/logs/*.* && false)
100- echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.1.1 -vnormal+nowrap" >> "$GITHUB_ENV"
100+ "$HOME/.ghcup/bin/ghcup" install cabal 3.16.0.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
101+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.16.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
101102 - name : Install GHC (GHCup)
102103 if : matrix.setup-method == 'ghcup'
103104 run : |
@@ -115,7 +116,7 @@ jobs:
115116 - name : Install GHC (GHCup vanilla)
116117 if : matrix.setup-method == 'ghcup-vanilla'
117118 run : |
118- "$HOME/.ghcup/bin/ghcup" -s https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8 .yaml install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
119+ "$HOME/.ghcup/bin/ghcup" -s https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.9 .yaml install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
119120 HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
120121 HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
121122 HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
@@ -187,18 +188,18 @@ jobs:
187188 chmod a+x $HOME/.cabal/bin/cabal-plan
188189 cabal-plan --version
189190 - name : checkout
190- uses : actions/checkout@v4
191+ uses : actions/checkout@v5
191192 with :
192193 path : source
193194 - name : initial cabal.project for sdist
194195 run : |
195196 touch cabal.project
196- echo "packages: $GITHUB_WORKSPACE/source/code/osv" >> cabal.project
197197 echo "packages: $GITHUB_WORKSPACE/source/code/hsec-tools" >> cabal.project
198- echo "packages: $GITHUB_WORKSPACE/source/code/hsec-sync" >> cabal.project
199- echo "packages: $GITHUB_WORKSPACE/source/code/hsec-core" >> cabal.project
198+ echo "packages: $GITHUB_WORKSPACE/source/code/osv" >> cabal.project
200199 echo "packages: $GITHUB_WORKSPACE/source/code/cvss" >> cabal.project
200+ echo "packages: $GITHUB_WORKSPACE/source/code/hsec-sync" >> cabal.project
201201 echo "packages: $GITHUB_WORKSPACE/source/code/purl" >> cabal.project
202+ echo "packages: $GITHUB_WORKSPACE/source/code/hsec-core" >> cabal.project
202203 cat cabal.project
203204 - name : sdist
204205 run : |
@@ -210,42 +211,66 @@ jobs:
210211 find sdist -maxdepth 1 -type f -name '*.tar.gz' -exec tar -C $GITHUB_WORKSPACE/unpacked -xzvf {} \;
211212 - name : generate cabal.project
212213 run : |
213- PKGDIR_osv="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/osv-[0-9.]*')"
214- echo "PKGDIR_osv=${PKGDIR_osv}" >> "$GITHUB_ENV"
215214 PKGDIR_hsec_tools="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/hsec-tools-[0-9.]*')"
216215 echo "PKGDIR_hsec_tools=${PKGDIR_hsec_tools}" >> "$GITHUB_ENV"
217- PKGDIR_hsec_sync="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/hsec-sync-[0-9.]*')"
218- echo "PKGDIR_hsec_sync=${PKGDIR_hsec_sync}" >> "$GITHUB_ENV"
219- PKGDIR_hsec_core="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/hsec-core-[0-9.]*')"
220- echo "PKGDIR_hsec_core=${PKGDIR_hsec_core}" >> "$GITHUB_ENV"
216+ PKGDIR_osv="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/osv-[0-9.]*')"
217+ echo "PKGDIR_osv=${PKGDIR_osv}" >> "$GITHUB_ENV"
221218 PKGDIR_cvss="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/cvss-[0-9.]*')"
222219 echo "PKGDIR_cvss=${PKGDIR_cvss}" >> "$GITHUB_ENV"
220+ PKGDIR_hsec_sync="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/hsec-sync-[0-9.]*')"
221+ echo "PKGDIR_hsec_sync=${PKGDIR_hsec_sync}" >> "$GITHUB_ENV"
223222 PKGDIR_purl="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/purl-[0-9.]*')"
224223 echo "PKGDIR_purl=${PKGDIR_purl}" >> "$GITHUB_ENV"
224+ PKGDIR_hsec_core="$(find "$GITHUB_WORKSPACE/unpacked" -maxdepth 1 -type d -regex '.*/hsec-core-[0-9.]*')"
225+ echo "PKGDIR_hsec_core=${PKGDIR_hsec_core}" >> "$GITHUB_ENV"
225226 rm -f cabal.project cabal.project.local
226227 touch cabal.project
227228 touch cabal.project.local
228- echo "packages: ${PKGDIR_osv}" >> cabal.project
229229 echo "packages: ${PKGDIR_hsec_tools}" >> cabal.project
230- echo "packages: ${PKGDIR_hsec_sync}" >> cabal.project
231- echo "packages: ${PKGDIR_hsec_core}" >> cabal.project
230+ echo "packages: ${PKGDIR_osv}" >> cabal.project
232231 echo "packages: ${PKGDIR_cvss}" >> cabal.project
232+ echo "packages: ${PKGDIR_hsec_sync}" >> cabal.project
233233 echo "packages: ${PKGDIR_purl}" >> cabal.project
234- echo "package osv" >> cabal.project
235- echo " ghc-options: -Werror=missing-methods" >> cabal.project
234+ echo "packages: ${PKGDIR_hsec_core}" >> cabal.project
236235 echo "package hsec-tools" >> cabal.project
237- echo " ghc-options: -Werror=missing-methods" >> cabal.project
238- echo "package hsec-sync" >> cabal.project
239- echo " ghc-options: -Werror=missing-methods" >> cabal.project
240- echo "package hsec-core" >> cabal.project
241- echo " ghc-options: -Werror=missing-methods" >> cabal.project
236+ echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
237+ echo "package osv" >> cabal.project
238+ echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
242239 echo "package cvss" >> cabal.project
243- echo " ghc-options: -Werror=missing-methods" >> cabal.project
240+ echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
241+ echo "package hsec-sync" >> cabal.project
242+ echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
244243 echo "package purl" >> cabal.project
245- echo " ghc-options: -Werror=missing-methods" >> cabal.project
244+ echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
245+ echo "package hsec-core" >> cabal.project
246+ echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project
247+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package hsec-tools" >> cabal.project ; fi
248+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
249+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package osv" >> cabal.project ; fi
250+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
251+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package cvss" >> cabal.project ; fi
252+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
253+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package hsec-sync" >> cabal.project ; fi
254+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
255+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package purl" >> cabal.project ; fi
256+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
257+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package hsec-core" >> cabal.project ; fi
258+ if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
259+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package hsec-tools" >> cabal.project ; fi
260+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
261+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package osv" >> cabal.project ; fi
262+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
263+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package cvss" >> cabal.project ; fi
264+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
265+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package hsec-sync" >> cabal.project ; fi
266+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
267+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package purl" >> cabal.project ; fi
268+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
269+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo "package hsec-core" >> cabal.project ; fi
270+ if [ $((HCNUMVER >= 90000)) -ne 0 ] ; then echo " ghc-options: -Werror=incomplete-patterns -Werror=incomplete-uni-patterns" >> cabal.project ; fi
246271 cat >> cabal.project <<EOF
247272 EOF
248- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(cvss|hsec-core|hsec-sync|hsec-tools|purl| osv)$/; }' >> cabal.project.local
273+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(cvss|hsec-core|hsec-sync|hsec-tools|osv|purl )$/; }' >> cabal.project.local
249274 cat cabal.project
250275 cat cabal.project.local
251276 - name : dump install plan
@@ -273,18 +298,18 @@ jobs:
273298 $CABAL v2-test $ARG_COMPILER $ARG_TESTS $ARG_BENCH all --test-show-details=direct
274299 - name : cabal check
275300 run : |
276- cd ${PKGDIR_osv} || false
277- ${CABAL} -vnormal check
278301 cd ${PKGDIR_hsec_tools} || false
279302 ${CABAL} -vnormal check
280- cd ${PKGDIR_hsec_sync} || false
281- ${CABAL} -vnormal check
282- cd ${PKGDIR_hsec_core} || false
303+ cd ${PKGDIR_osv} || false
283304 ${CABAL} -vnormal check
284305 cd ${PKGDIR_cvss} || false
285306 ${CABAL} -vnormal check
307+ cd ${PKGDIR_hsec_sync} || false
308+ ${CABAL} -vnormal check
286309 cd ${PKGDIR_purl} || false
287310 ${CABAL} -vnormal check
311+ cd ${PKGDIR_hsec_core} || false
312+ ${CABAL} -vnormal check
288313 - name : haddock
289314 run : |
290315 $CABAL v2-haddock --disable-documentation --haddock-all $ARG_COMPILER --with-haddock $HADDOCK $ARG_TESTS $ARG_BENCH all
0 commit comments