88#
99# For more information, see https://github.com/haskell-CI/haskell-ci
1010#
11- # version: 0.17.20231203
11+ # version: 0.19.20250506
1212#
13- # REGENDATA ("0.17.20231203 ",["github","split.cabal"])
13+ # REGENDATA ("0.19.20250506 ",["github","split.cabal"])
1414#
1515name : Haskell-CI
1616on :
1919jobs :
2020 linux :
2121 name : Haskell-CI - Linux - ${{ matrix.compiler }}
22- runs-on : ubuntu-20 .04
22+ runs-on : ubuntu-24 .04
2323 timeout-minutes :
2424 60
2525 container :
26- image : buildpack-deps:bionic
26+ image : buildpack-deps:jammy
2727 continue-on-error : ${{ matrix.allow-failure }}
2828 strategy :
2929 matrix :
3030 include :
31- - compiler : ghc-9.8.1
31+ - compiler : ghc-9.12.2
3232 compilerKind : ghc
33- compilerVersion : 9.8.1
33+ compilerVersion : 9.12.2
3434 setup-method : ghcup
3535 allow-failure : false
36- - compiler : ghc-9.6.3
36+ - compiler : ghc-9.10.2
3737 compilerKind : ghc
38- compilerVersion : 9.6.3
38+ compilerVersion : 9.10.2
39+ setup-method : ghcup
40+ allow-failure : false
41+ - compiler : ghc-9.8.4
42+ compilerKind : ghc
43+ compilerVersion : 9.8.4
44+ setup-method : ghcup
45+ allow-failure : false
46+ - compiler : ghc-9.6.7
47+ compilerKind : ghc
48+ compilerVersion : 9.6.7
3949 setup-method : ghcup
4050 allow-failure : false
4151 - compiler : ghc-9.4.8
@@ -61,79 +71,53 @@ jobs:
6171 - compiler : ghc-8.8.4
6272 compilerKind : ghc
6373 compilerVersion : 8.8.4
64- setup-method : hvr-ppa
74+ setup-method : ghcup
6575 allow-failure : false
6676 - compiler : ghc-8.6.5
6777 compilerKind : ghc
6878 compilerVersion : 8.6.5
69- setup-method : hvr-ppa
79+ setup-method : ghcup
7080 allow-failure : false
7181 - compiler : ghc-8.4.4
7282 compilerKind : ghc
7383 compilerVersion : 8.4.4
74- setup-method : hvr-ppa
84+ setup-method : ghcup
7585 allow-failure : false
7686 - compiler : ghc-8.2.2
7787 compilerKind : ghc
7888 compilerVersion : 8.2.2
79- setup-method : hvr-ppa
89+ setup-method : ghcup
8090 allow-failure : false
8191 - compiler : ghc-8.0.2
8292 compilerKind : ghc
8393 compilerVersion : 8.0.2
84- setup-method : hvr-ppa
85- allow-failure : false
86- - compiler : ghc-7.10.3
87- compilerKind : ghc
88- compilerVersion : 7.10.3
89- setup-method : hvr-ppa
90- allow-failure : false
91- - compiler : ghc-7.8.4
92- compilerKind : ghc
93- compilerVersion : 7.8.4
94- setup-method : hvr-ppa
95- allow-failure : false
96- - compiler : ghc-7.6.3
97- compilerKind : ghc
98- compilerVersion : 7.6.3
99- setup-method : hvr-ppa
100- allow-failure : false
101- - compiler : ghc-7.4.2
102- compilerKind : ghc
103- compilerVersion : 7.4.2
104- setup-method : hvr-ppa
105- allow-failure : false
106- - compiler : ghc-7.2.2
107- compilerKind : ghc
108- compilerVersion : 7.2.2
109- setup-method : hvr-ppa
110- allow-failure : false
111- - compiler : ghc-7.0.4
112- compilerKind : ghc
113- compilerVersion : 7.0.4
114- setup-method : hvr-ppa
94+ setup-method : ghcup
11595 allow-failure : false
11696 fail-fast : false
11797 steps :
118- - name : apt
98+ - name : apt-get install
11999 run : |
120100 apt-get update
121- apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
122- if [ "${{ matrix.setup-method }}" = ghcup ]; then
123- mkdir -p "$HOME/.ghcup/bin"
124- curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
125- chmod a+x "$HOME/.ghcup/bin/ghcup"
126- "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
127- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
128- else
129- apt-add-repository -y 'ppa:hvr/ghc'
130- apt-get update
131- apt-get install -y "$HCNAME"
132- mkdir -p "$HOME/.ghcup/bin"
133- curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
134- chmod a+x "$HOME/.ghcup/bin/ghcup"
135- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
136- fi
101+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
102+ - name : Install GHCup
103+ run : |
104+ mkdir -p "$HOME/.ghcup/bin"
105+ curl -sL https://downloads.haskell.org/ghcup/0.1.50.1/x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup"
106+ chmod a+x "$HOME/.ghcup/bin/ghcup"
107+ - name : Install cabal-install
108+ run : |
109+ "$HOME/.ghcup/bin/ghcup" install cabal 3.14.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
110+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
111+ - name : Install GHC (GHCup)
112+ if : matrix.setup-method == 'ghcup'
113+ run : |
114+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
115+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
116+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
117+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
118+ echo "HC=$HC" >> "$GITHUB_ENV"
119+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
120+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
137121 env :
138122 HCKIND : ${{ matrix.compilerKind }}
139123 HCNAME : ${{ matrix.compiler }}
@@ -144,30 +128,12 @@ jobs:
144128 echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
145129 echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
146130 echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
147- HCDIR=/opt/$HCKIND/$HCVER
148- if [ "${{ matrix.setup-method }}" = ghcup ]; then
149- HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
150- HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
151- HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
152- echo "HC=$HC" >> "$GITHUB_ENV"
153- echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
154- echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
155- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
156- else
157- HC=$HCDIR/bin/$HCKIND
158- echo "HC=$HC" >> "$GITHUB_ENV"
159- echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
160- echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
161- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
162- fi
163-
164131 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
165132 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
166133 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
167134 echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
168135 echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
169136 echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
170- echo "GHCJSARITH=0" >> "$GITHUB_ENV"
171137 env :
172138 HCKIND : ${{ matrix.compilerKind }}
173139 HCNAME : ${{ matrix.compiler }}
@@ -207,11 +173,6 @@ jobs:
207173 - name : update cabal index
208174 run : |
209175 $CABAL v2-update -v
210- - name : cache (tools)
211- uses : actions/cache/restore@v3
212- with :
213- key : ${{ runner.os }}-${{ matrix.compiler }}-tools-4b38b65d
214- path : ~/.haskell-ci-tools
215176 - name : install cabal-plan
216177 run : |
217178 mkdir -p $HOME/.cabal/bin
@@ -224,20 +185,14 @@ jobs:
224185 - name : install cabal-docspec
225186 run : |
226187 mkdir -p $HOME/.cabal/bin
227- curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20230517 /cabal-docspec-0.0.0.20230517 -x86_64-linux.xz > cabal-docspec.xz
228- echo '3b31bbe463ad4d671abbc103db49628562ec48a6604cab278207b5b6acd21ed7 cabal-docspec.xz' | sha256sum -c -
188+ curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20240703 /cabal-docspec-0.0.0.20240703 -x86_64-linux.xz > cabal-docspec.xz
189+ echo '48bf3b7fd2f7f0caa6162afee57a755be8523e7f467b694900eb420f5f9a7b76 cabal-docspec.xz' | sha256sum -c -
229190 xz -d < cabal-docspec.xz > $HOME/.cabal/bin/cabal-docspec
230191 rm -f cabal-docspec.xz
231192 chmod a+x $HOME/.cabal/bin/cabal-docspec
232193 cabal-docspec --version
233- - name : save cache (tools)
234- uses : actions/cache/save@v3
235- if : always()
236- with :
237- key : ${{ runner.os }}-${{ matrix.compiler }}-tools-4b38b65d
238- path : ~/.haskell-ci-tools
239194 - name : checkout
240- uses : actions/checkout@v3
195+ uses : actions/checkout@v4
241196 with :
242197 path : source
243198 - name : initial cabal.project for sdist
@@ -265,15 +220,15 @@ jobs:
265220 if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
266221 cat >> cabal.project <<EOF
267222 EOF
268- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(split)$/; }' >> cabal.project.local
223+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(split)$/; }' >> cabal.project.local
269224 cat cabal.project
270225 cat cabal.project.local
271226 - name : dump install plan
272227 run : |
273228 $CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
274229 cabal-plan
275230 - name : restore cache
276- uses : actions/cache/restore@v3
231+ uses : actions/cache/restore@v4
277232 with :
278233 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
279234 path : ~/.cabal/store
@@ -307,8 +262,8 @@ jobs:
307262 rm -f cabal.project.local
308263 $CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
309264 - name : save cache
310- uses : actions/cache/save@v3
311265 if : always()
266+ uses : actions/cache/save@v4
312267 with :
313268 key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
314269 path : ~/.cabal/store
0 commit comments