8
8
#
9
9
# For more information, see https://github.com/haskell-CI/haskell-ci
10
10
#
11
- # version: 0.16.4
11
+ # version: 0.17.20230824
12
12
#
13
- # REGENDATA ("0.16.4 ",["github","--no-cabal-check","agda-stdlib-utils.cabal"])
13
+ # REGENDATA ("0.17.20230824 ",["github","--no-cabal-check","agda-stdlib-utils.cabal"])
14
14
#
15
15
name : Haskell-CI
16
16
on :
@@ -44,14 +44,19 @@ jobs:
44
44
strategy :
45
45
matrix :
46
46
include :
47
+ - compiler : ghc-9.8.0.20230822
48
+ compilerKind : ghc
49
+ compilerVersion : 9.8.0.20230822
50
+ setup-method : ghcup
51
+ allow-failure : true
47
52
- compiler : ghc-9.6.2
48
53
compilerKind : ghc
49
54
compilerVersion : 9.6.2
50
55
setup-method : ghcup
51
56
allow-failure : false
52
- - compiler : ghc-9.4.5
57
+ - compiler : ghc-9.4.6
53
58
compilerKind : ghc
54
- compilerVersion : 9.4.5
59
+ compilerVersion : 9.4.6
55
60
setup-method : ghcup
56
61
allow-failure : false
57
62
- compiler : ghc-9.2.8
@@ -87,17 +92,19 @@ jobs:
87
92
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
88
93
if [ "${{ matrix.setup-method }}" = ghcup ]; then
89
94
mkdir -p "$HOME/.ghcup/bin"
90
- curl -sL https://downloads.haskell.org/ghcup/0.1.19.2 /x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
95
+ curl -sL https://downloads.haskell.org/ghcup/0.1.19.5 /x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
91
96
chmod a+x "$HOME/.ghcup/bin/ghcup"
97
+ "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml;
92
98
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
93
99
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
94
100
else
95
101
apt-add-repository -y 'ppa:hvr/ghc'
96
102
apt-get update
97
103
apt-get install -y "$HCNAME"
98
104
mkdir -p "$HOME/.ghcup/bin"
99
- curl -sL https://downloads.haskell.org/ghcup/0.1.19.2 /x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
105
+ curl -sL https://downloads.haskell.org/ghcup/0.1.19.5 /x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
100
106
chmod a+x "$HOME/.ghcup/bin/ghcup"
107
+ "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml;
101
108
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
102
109
fi
103
110
env :
@@ -112,10 +119,12 @@ jobs:
112
119
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
113
120
HCDIR=/opt/$HCKIND/$HCVER
114
121
if [ "${{ matrix.setup-method }}" = ghcup ]; then
115
- HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
122
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
123
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
124
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
116
125
echo "HC=$HC" >> "$GITHUB_ENV"
117
- echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER " >> "$GITHUB_ENV"
118
- echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER " >> "$GITHUB_ENV"
126
+ echo "HCPKG=$HCPKG " >> "$GITHUB_ENV"
127
+ echo "HADDOCK=$HADDOCK " >> "$GITHUB_ENV"
119
128
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
120
129
else
121
130
HC=$HCDIR/bin/$HCKIND
@@ -129,7 +138,7 @@ jobs:
129
138
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
130
139
echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
131
140
echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
132
- echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
141
+ if [ $((HCNUMVER >= 90800)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE= false" >> "$GITHUB_ENV" ; fi
133
142
echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
134
143
echo "GHCJSARITH=0" >> "$GITHUB_ENV"
135
144
env :
@@ -158,6 +167,18 @@ jobs:
158
167
repository hackage.haskell.org
159
168
url: http://hackage.haskell.org/
160
169
EOF
170
+ if $HEADHACKAGE; then
171
+ cat >> $CABAL_CONFIG <<EOF
172
+ repository head.hackage.ghc.haskell.org
173
+ url: https://ghc.gitlab.haskell.org/head.hackage/
174
+ secure: True
175
+ root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
176
+ 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
177
+ f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
178
+ key-threshold: 3
179
+ active-repositories: hackage.haskell.org, head.hackage.ghc.haskell.org:override
180
+ EOF
181
+ fi
161
182
cat >> $CABAL_CONFIG <<EOF
162
183
program-default-options
163
184
ghc-options: $GHCJOBS +RTS -M3G -RTS
@@ -209,6 +230,9 @@ jobs:
209
230
echo " ghc-options: -Werror=missing-methods" >> cabal.project
210
231
cat >> cabal.project <<EOF
211
232
EOF
233
+ if $HEADHACKAGE; then
234
+ echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
235
+ fi
212
236
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(agda-stdlib-utils)$/; }' >> cabal.project.local
213
237
cat cabal.project
214
238
cat cabal.project.local
0 commit comments