8
8
#
9
9
# For more information, see https://github.com/haskell-CI/haskell-ci
10
10
#
11
- # version: 0.18.1
11
+ # version: 0.19.20241219
12
12
#
13
- # REGENDATA ("0.18.1 ",["github","--config=cabal.haskell-ci","cabal.project"])
13
+ # REGENDATA ("0.19.20241219 ",["github","--config=cabal.haskell-ci","cabal.project"])
14
14
#
15
15
name : Haskell-CI
16
16
on :
27
27
timeout-minutes :
28
28
60
29
29
container :
30
- image : buildpack-deps:bionic
30
+ image : buildpack-deps:jammy
31
31
services :
32
32
postgres :
33
33
image : postgres:14
@@ -38,14 +38,24 @@ jobs:
38
38
strategy :
39
39
matrix :
40
40
include :
41
- - compiler : ghc-9.8.2
41
+ - compiler : ghc-9.12.1
42
42
compilerKind : ghc
43
- compilerVersion : 9.8.2
43
+ compilerVersion : 9.12.1
44
44
setup-method : ghcup
45
45
allow-failure : false
46
- - compiler : ghc-9.6.4
46
+ - compiler : ghc-9.10.1
47
47
compilerKind : ghc
48
- compilerVersion : 9.6.4
48
+ compilerVersion : 9.10.1
49
+ setup-method : ghcup
50
+ allow-failure : false
51
+ - compiler : ghc-9.8.3
52
+ compilerKind : ghc
53
+ compilerVersion : 9.8.3
54
+ setup-method : ghcup-vanilla
55
+ allow-failure : false
56
+ - compiler : ghc-9.6.6
57
+ compilerKind : ghc
58
+ compilerVersion : 9.6.6
49
59
setup-method : ghcup
50
60
allow-failure : false
51
61
- compiler : ghc-9.4.8
@@ -70,40 +80,60 @@ jobs:
70
80
allow-failure : false
71
81
fail-fast : false
72
82
steps :
73
- - name : apt
83
+ - name : apt-get install
74
84
run : |
75
85
apt-get update
76
86
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
87
+ - name : Install GHCup
88
+ run : |
77
89
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"
90
+ curl -sL https://downloads.haskell.org/ghcup/0.1.30 .0/x86_64-linux-ghcup-0.1.30 .0 > "$HOME/.ghcup/bin/ghcup"
79
91
chmod a+x "$HOME/.ghcup/bin/ghcup"
92
+ - name : Install cabal-install (prerelease)
93
+ run : |
94
+ "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
95
+ "$HOME/.ghcup/bin/ghcup" install cabal 3.15.0.0.2024.10.3 || (cat "$HOME"/.ghcup/logs/*.* && false)
96
+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.15.0.0.2024.10.3 -vnormal+nowrap" >> "$GITHUB_ENV"
97
+ - name : Install GHC (GHCup)
98
+ if : matrix.setup-method == 'ghcup'
99
+ run : |
80
100
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
81
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
101
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
102
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
103
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
104
+ echo "HC=$HC" >> "$GITHUB_ENV"
105
+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
106
+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
82
107
env :
83
108
HCKIND : ${{ matrix.compilerKind }}
84
109
HCNAME : ${{ matrix.compiler }}
85
110
HCVER : ${{ matrix.compilerVersion }}
86
- - name : Set PATH and environment variables
111
+ - name : Install GHC (GHCup vanilla)
112
+ if : matrix.setup-method == 'ghcup-vanilla'
87
113
run : |
88
- echo "$HOME/.cabal/bin" >> $GITHUB_PATH
89
- echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
90
- echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
91
- echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
92
- HCDIR=/opt/$HCKIND/$HCVER
114
+ "$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)
93
115
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
94
116
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
95
117
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
96
118
echo "HC=$HC" >> "$GITHUB_ENV"
97
119
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
98
120
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
99
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
121
+ env :
122
+ HCKIND : ${{ matrix.compilerKind }}
123
+ HCNAME : ${{ matrix.compiler }}
124
+ HCVER : ${{ matrix.compilerVersion }}
125
+ - name : Set PATH and environment variables
126
+ run : |
127
+ echo "$HOME/.cabal/bin" >> $GITHUB_PATH
128
+ echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
129
+ echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
130
+ echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
100
131
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
101
132
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
102
133
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
103
134
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
104
135
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
105
136
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
106
- echo "GHCJSARITH=0" >> "$GITHUB_ENV"
107
137
env :
108
138
HCKIND : ${{ matrix.compilerKind }}
109
139
HCNAME : ${{ matrix.compiler }}
@@ -153,7 +183,7 @@ jobs:
153
183
chmod a+x $HOME/.cabal/bin/cabal-plan
154
184
cabal-plan --version
155
185
- name : checkout
156
- uses : actions/checkout@v3
186
+ uses : actions/checkout@v4
157
187
with :
158
188
path : source
159
189
- name : initial cabal.project for sdist
@@ -184,15 +214,15 @@ jobs:
184
214
allow-newer: *:ghc-prim
185
215
allow-newer: *:template-haskell
186
216
EOF
187
- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(hpqtypes)$/; }' >> cabal.project.local
217
+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(hpqtypes)$/; }' >> cabal.project.local
188
218
cat cabal.project
189
219
cat cabal.project.local
190
220
- name : dump install plan
191
221
run : |
192
222
$CABAL v2-build $ARG_COMPILER $ARG_TESTS $ARG_BENCH --dry-run all
193
223
cabal-plan
194
224
- name : restore cache
195
- uses : actions/cache/restore@v3
225
+ uses : actions/cache/restore@v4
196
226
with :
197
227
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
198
228
path : ~/.cabal/store
@@ -222,8 +252,8 @@ jobs:
222
252
rm -f cabal.project.local
223
253
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
224
254
- name : save cache
225
- uses : actions/cache/save@v3
226
255
if : always()
256
+ uses : actions/cache/save@v4
227
257
with :
228
258
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
229
259
path : ~/.cabal/store
0 commit comments