6
6
#
7
7
# haskell-ci regenerate
8
8
#
9
- # For more information, see https://github.com/haskell-CI /haskell-ci
9
+ # For more information, see https://github.com/andreasabel /haskell-ci
10
10
#
11
- # version: 0.18.1
11
+ # version: 0.19.20241111
12
12
#
13
- # REGENDATA ("0.18.1 ",["--no-cabal-check","github","haxl.cabal"])
13
+ # REGENDATA ("0.19.20241111 ",["--no-cabal-check","github","haxl.cabal"])
14
14
#
15
15
name : Haskell-CI
16
16
on :
@@ -23,20 +23,40 @@ jobs:
23
23
timeout-minutes :
24
24
60
25
25
container :
26
- image : buildpack-deps:bionic
26
+ image : buildpack-deps:jammy
27
27
continue-on-error : ${{ matrix.allow-failure }}
28
28
strategy :
29
29
matrix :
30
30
include :
31
- - compiler : ghc-9.2.2
31
+ - compiler : ghc-9.10.1
32
32
compilerKind : ghc
33
- compilerVersion : 9.2.2
33
+ compilerVersion : 9.10.1
34
34
setup-method : ghcup
35
35
allow-failure : false
36
- - compiler : ghc-9.0.1
36
+ - compiler : ghc-9.8.2
37
37
compilerKind : ghc
38
- compilerVersion : 9.0.1
39
- setup-method : hvr-ppa
38
+ compilerVersion : 9.8.2
39
+ setup-method : ghcup
40
+ allow-failure : false
41
+ - compiler : ghc-9.6.6
42
+ compilerKind : ghc
43
+ compilerVersion : 9.6.6
44
+ setup-method : ghcup
45
+ allow-failure : false
46
+ - compiler : ghc-9.4.8
47
+ compilerKind : ghc
48
+ compilerVersion : 9.4.8
49
+ setup-method : ghcup
50
+ allow-failure : false
51
+ - compiler : ghc-9.2.8
52
+ compilerKind : ghc
53
+ compilerVersion : 9.2.8
54
+ setup-method : ghcup
55
+ allow-failure : false
56
+ - compiler : ghc-9.0.2
57
+ compilerKind : ghc
58
+ compilerVersion : 9.0.2
59
+ setup-method : ghcup
40
60
allow-failure : false
41
61
- compiler : ghc-8.10.7
42
62
compilerKind : ghc
@@ -46,39 +66,30 @@ jobs:
46
66
- compiler : ghc-8.8.4
47
67
compilerKind : ghc
48
68
compilerVersion : 8.8.4
49
- setup-method : hvr-ppa
69
+ setup-method : ghcup
50
70
allow-failure : false
51
71
- compiler : ghc-8.6.5
52
72
compilerKind : ghc
53
73
compilerVersion : 8.6.5
54
- setup-method : hvr-ppa
74
+ setup-method : ghcup
55
75
allow-failure : false
56
76
- compiler : ghc-8.4.4
57
77
compilerKind : ghc
58
78
compilerVersion : 8.4.4
59
- setup-method : hvr-ppa
79
+ setup-method : ghcup
60
80
allow-failure : false
61
81
fail-fast : false
62
82
steps :
63
83
- name : apt
64
84
run : |
65
85
apt-get update
66
- apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
67
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
68
- mkdir -p "$HOME/.ghcup/bin"
69
- curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
70
- chmod a+x "$HOME/.ghcup/bin/ghcup"
71
- "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
72
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
73
- else
74
- apt-add-repository -y 'ppa:hvr/ghc'
75
- apt-get update
76
- apt-get install -y "$HCNAME"
77
- mkdir -p "$HOME/.ghcup/bin"
78
- curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup"
79
- chmod a+x "$HOME/.ghcup/bin/ghcup"
80
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
81
- fi
86
+ apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 libnuma-dev
87
+ mkdir -p "$HOME/.ghcup/bin"
88
+ curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
89
+ chmod a+x "$HOME/.ghcup/bin/ghcup"
90
+ "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
91
+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
92
+ "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
82
93
env :
83
94
HCKIND : ${{ matrix.compilerKind }}
84
95
HCNAME : ${{ matrix.compiler }}
@@ -90,22 +101,13 @@ jobs:
90
101
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
91
102
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
92
103
HCDIR=/opt/$HCKIND/$HCVER
93
- if [ "${{ matrix.setup-method }}" = ghcup ]; then
94
- HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
95
- HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
96
- HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
97
- echo "HC=$HC" >> "$GITHUB_ENV"
98
- echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
99
- echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
100
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
101
- else
102
- HC=$HCDIR/bin/$HCKIND
103
- echo "HC=$HC" >> "$GITHUB_ENV"
104
- echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
105
- echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
106
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
107
- fi
108
-
104
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
105
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
106
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
107
+ echo "HC=$HC" >> "$GITHUB_ENV"
108
+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
109
+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
110
+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
109
111
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
110
112
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
111
113
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
@@ -162,7 +164,7 @@ jobs:
162
164
chmod a+x $HOME/.cabal/bin/cabal-plan
163
165
cabal-plan --version
164
166
- name : checkout
165
- uses : actions/checkout@v3
167
+ uses : actions/checkout@v4
166
168
with :
167
169
path : source
168
170
- name : initial cabal.project for sdist
@@ -190,15 +192,15 @@ jobs:
190
192
echo " ghc-options: -Werror=missing-methods" >> cabal.project
191
193
cat >> cabal.project <<EOF
192
194
EOF
193
- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(haxl)$/; }' >> cabal.project.local
195
+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(haxl)$/; }' >> cabal.project.local
194
196
cat cabal.project
195
197
cat cabal.project.local
196
198
- name : dump install plan
197
199
run : |
198
200
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
199
201
cabal-plan
200
202
- name : restore cache
201
- uses : actions/cache/restore@v3
203
+ uses : actions/cache/restore@v4
202
204
with :
203
205
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
204
206
path : ~/.cabal/store
@@ -224,7 +226,7 @@ jobs:
224
226
rm -f cabal.project.local
225
227
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
226
228
- name : save cache
227
- uses : actions/cache/save@v3
229
+ uses : actions/cache/save@v4
228
230
if : always()
229
231
with :
230
232
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
0 commit comments