8
8
#
9
9
# For more information, see https://github.com/haskell-CI/haskell-ci
10
10
#
11
- # version: 0.19.20240501
11
+ # version: 0.19.20241121
12
12
#
13
- # REGENDATA ("0.19.20240501 ",["--branches","master","--github-patches",".github/workflows/ci-skip-package-map.patch","--doctest","--doctest-options=-i ../../dist-newstyle/build/*/*/cabal2nix-*/build/autogen","--doctest-jobs=>= 8.8 && < 9.4","github","cabal.project"])
13
+ # REGENDATA ("0.19.20241121 ",["--branches","master","--github-patches",".github/workflows/ci-skip-package-map.patch","--doctest","--doctest-options=-i ../../dist-newstyle/build/*/*/cabal2nix-*/build/autogen","--doctest-jobs=>= 8.8 && < 9.4","github","cabal.project"])
14
14
#
15
15
name : Haskell-CI
16
16
on :
32
32
strategy :
33
33
matrix :
34
34
include :
35
- - compiler : ghc-9.6.5
35
+ - compiler : ghc-9.10.1
36
36
compilerKind : ghc
37
- compilerVersion : 9.6.5
37
+ compilerVersion : 9.10.1
38
+ setup-method : ghcup
39
+ allow-failure : false
40
+ - compiler : ghc-9.8.3
41
+ compilerKind : ghc
42
+ compilerVersion : 9.8.3
43
+ setup-method : ghcup-vanilla
44
+ allow-failure : false
45
+ - compiler : ghc-9.6.6
46
+ compilerKind : ghc
47
+ compilerVersion : 9.6.6
38
48
setup-method : ghcup
39
49
allow-failure : false
40
50
- compiler : ghc-9.4.8
@@ -59,41 +69,59 @@ jobs:
59
69
allow-failure : false
60
70
fail-fast : false
61
71
steps :
62
- - name : apt
72
+ - name : apt-get install
63
73
run : |
64
74
apt-get update
65
75
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
76
+ - name : Install GHCup
77
+ run : |
66
78
mkdir -p "$HOME/.ghcup/bin"
67
- curl -sL https://downloads.haskell.org/ghcup/0.1.20 .0/x86_64-linux-ghcup-0.1.20 .0 > "$HOME/.ghcup/bin/ghcup"
79
+ curl -sL https://downloads.haskell.org/ghcup/0.1.30 .0/x86_64-linux-ghcup-0.1.30 .0 > "$HOME/.ghcup/bin/ghcup"
68
80
chmod a+x "$HOME/.ghcup/bin/ghcup"
69
- "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml;
81
+ - name : Install cabal-install
82
+ run : |
83
+ "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
84
+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
85
+ - name : Install GHC (GHCup)
86
+ if : matrix.setup-method == 'ghcup'
87
+ run : |
70
88
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
71
- "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
89
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
90
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
91
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
92
+ echo "HC=$HC" >> "$GITHUB_ENV"
93
+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
94
+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
72
95
env :
73
96
HCKIND : ${{ matrix.compilerKind }}
74
97
HCNAME : ${{ matrix.compiler }}
75
98
HCVER : ${{ matrix.compilerVersion }}
76
- - name : Set PATH and environment variables
99
+ - name : Install GHC (GHCup vanilla)
100
+ if : matrix.setup-method == 'ghcup-vanilla'
77
101
run : |
78
- echo "$HOME/.cabal/bin" >> $GITHUB_PATH
79
- echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
80
- echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
81
- echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
82
- HCDIR=/opt/$HCKIND/$HCVER
102
+ "$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)
83
103
HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
84
104
HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
85
105
HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
86
106
echo "HC=$HC" >> "$GITHUB_ENV"
87
107
echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
88
108
echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
89
- echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
109
+ env :
110
+ HCKIND : ${{ matrix.compilerKind }}
111
+ HCNAME : ${{ matrix.compiler }}
112
+ HCVER : ${{ matrix.compilerVersion }}
113
+ - name : Set PATH and environment variables
114
+ run : |
115
+ echo "$HOME/.cabal/bin" >> $GITHUB_PATH
116
+ echo "LANG=C.UTF-8" >> "$GITHUB_ENV"
117
+ echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
118
+ echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
90
119
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
91
120
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
92
121
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
93
122
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
94
123
echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
95
124
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
96
- echo "GHCJSARITH=0" >> "$GITHUB_ENV"
97
125
env :
98
126
HCKIND : ${{ matrix.compilerKind }}
99
127
HCNAME : ${{ matrix.compiler }}
@@ -136,7 +164,7 @@ jobs:
136
164
- name : cache (tools)
137
165
uses : actions/cache/restore@v4
138
166
with :
139
- key : ${{ runner.os }}-${{ matrix.compiler }}-tools-dd324315
167
+ key : ${{ runner.os }}-${{ matrix.compiler }}-tools-fb82843d
140
168
path : ~/.haskell-ci-tools
141
169
- name : install cabal-plan
142
170
run : |
@@ -152,10 +180,10 @@ jobs:
152
180
if [ $((HCNUMVER < 90400)) -ne 0 ] ; then $CABAL --store-dir=$HOME/.haskell-ci-tools/store v2-install $ARG_COMPILER --ignore-project -j2 doctest --constraint='doctest ^>=0.22.0' ; fi
153
181
if [ $((HCNUMVER < 90400)) -ne 0 ] ; then doctest --version ; fi
154
182
- name : save cache (tools)
155
- uses : actions/cache/save@v4
156
183
if : always()
184
+ uses : actions/cache/save@v4
157
185
with :
158
- key : ${{ runner.os }}-${{ matrix.compiler }}-tools-dd324315
186
+ key : ${{ runner.os }}-${{ matrix.compiler }}-tools-fb82843d
159
187
path : ~/.haskell-ci-tools
160
188
- name : checkout
161
189
uses : actions/checkout@v4
@@ -204,7 +232,7 @@ jobs:
204
232
echo " ghc-options: -Werror=missing-methods" >> cabal.project
205
233
cat >> cabal.project <<EOF
206
234
EOF
207
- $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(cabal2nix|distribution-nixpkgs|hackage-db|language-nix)$/; }' >> cabal.project.local
235
+ $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any. $_ installed\n" unless /^(cabal2nix|distribution-nixpkgs|hackage-db|language-nix)$/; }' >> cabal.project.local
208
236
cat cabal.project
209
237
cat cabal.project.local
210
238
- name : dump install plan
@@ -258,8 +286,8 @@ jobs:
258
286
rm -f cabal.project.local
259
287
$CABAL v2-build $ARG_COMPILER --disable-tests --disable-benchmarks all
260
288
- name : save cache
261
- uses : actions/cache/save@v4
262
289
if : always()
290
+ uses : actions/cache/save@v4
263
291
with :
264
292
key : ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }}
265
293
path : ~/.cabal/store
0 commit comments