88#
99# For more information, see https://github.com/haskell-CI/haskell-ci
1010#
11- # version: 0.13.20210606
11+ # version: 0.13.20210912
1212#
13- # REGENDATA ("0.13.20210606 ",["github","haskell-src.cabal"])
13+ # REGENDATA ("0.13.20210912 ",["github","haskell-src.cabal"])
1414#
1515name : Haskell-CI
1616on :
@@ -26,15 +26,20 @@ jobs:
2626 strategy :
2727 matrix :
2828 include :
29+ - compiler : ghc-9.2.0.20210821
30+ compilerKind : ghc
31+ compilerVersion : 9.2.0.20210821
32+ setup-method : ghcup
33+ allow-failure : true
2934 - compiler : ghc-9.0.1
3035 compilerKind : ghc
3136 compilerVersion : 9.0.1
3237 setup-method : hvr-ppa
3338 allow-failure : false
34- - compiler : ghc-8.10.4
39+ - compiler : ghc-8.10.7
3540 compilerKind : ghc
36- compilerVersion : 8.10.4
37- setup-method : hvr-ppa
41+ compilerVersion : 8.10.7
42+ setup-method : ghcup
3843 allow-failure : false
3944 - compiler : ghc-8.8.4
4045 compilerKind : ghc
@@ -97,9 +102,21 @@ jobs:
97102 run : |
98103 apt-get update
99104 apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
100- apt-add-repository -y 'ppa:hvr/ghc'
101- apt-get update
102- apt-get install -y "$HCNAME" cabal-install-3.4
105+ if [ "${{ matrix.setup-method }}" = ghcup ]; then
106+ mkdir -p "$HOME/.ghcup/bin"
107+ curl -sL https://downloads.haskell.org/ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2 > "$HOME/.ghcup/bin/ghcup"
108+ chmod a+x "$HOME/.ghcup/bin/ghcup"
109+ "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER"
110+ "$HOME/.ghcup/bin/ghcup" install cabal 3.6.0.0
111+ else
112+ apt-add-repository -y 'ppa:hvr/ghc'
113+ apt-get update
114+ apt-get install -y "$HCNAME"
115+ mkdir -p "$HOME/.ghcup/bin"
116+ curl -sL https://downloads.haskell.org/ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2 > "$HOME/.ghcup/bin/ghcup"
117+ chmod a+x "$HOME/.ghcup/bin/ghcup"
118+ "$HOME/.ghcup/bin/ghcup" install cabal 3.6.0.0
119+ fi
103120 env :
104121 HCKIND : ${{ matrix.compilerKind }}
105122 HCNAME : ${{ matrix.compiler }}
@@ -111,16 +128,25 @@ jobs:
111128 echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
112129 echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
113130 HCDIR=/opt/$HCKIND/$HCVER
114- HC=$HCDIR/bin/$HCKIND
115- echo "HC=$HC" >> "$GITHUB_ENV"
116- echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
117- echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
118- echo "CABAL=/opt/cabal/3.4/bin/cabal -vnormal+nowrap" >> "$GITHUB_ENV"
131+ if [ "${{ matrix.setup-method }}" = ghcup ]; then
132+ HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
133+ echo "HC=$HC" >> "$GITHUB_ENV"
134+ echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
135+ echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
136+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
137+ else
138+ HC=$HCDIR/bin/$HCKIND
139+ echo "HC=$HC" >> "$GITHUB_ENV"
140+ echo "HCPKG=$HCDIR/bin/$HCKIND-pkg" >> "$GITHUB_ENV"
141+ echo "HADDOCK=$HCDIR/bin/haddock" >> "$GITHUB_ENV"
142+ echo "CABAL=$HOME/.ghcup/bin/cabal-3.6.0.0 -vnormal+nowrap" >> "$GITHUB_ENV"
143+ fi
144+
119145 HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
120146 echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
121147 echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV"
122148 echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV"
123- echo "HEADHACKAGE=false" >> "$GITHUB_ENV"
149+ if [ $((HCNUMVER >= 90200)) -ne 0 ] ; then echo "HEADHACKAGE=true" >> "$GITHUB_ENV" ; else echo "HEADHACKAGE= false" >> "$GITHUB_ENV" ; fi
124150 echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV"
125151 echo "GHCJSARITH=0" >> "$GITHUB_ENV"
126152 env :
@@ -149,6 +175,17 @@ jobs:
149175 repository hackage.haskell.org
150176 url: http://hackage.haskell.org/
151177 EOF
178+ if $HEADHACKAGE; then
179+ cat >> $CABAL_CONFIG <<EOF
180+ repository head.hackage.ghc.haskell.org
181+ url: https://ghc.gitlab.haskell.org/head.hackage/
182+ secure: True
183+ root-keys: 7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d
184+ 26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329
185+ f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89
186+ key-threshold: 3
187+ EOF
188+ fi
152189 cat $CABAL_CONFIG
153190 - name : versions
154191 run : |
@@ -196,6 +233,9 @@ jobs:
196233 if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
197234 cat >> cabal.project <<EOF
198235 EOF
236+ if $HEADHACKAGE; then
237+ echo "allow-newer: $($HCPKG list --simple-output | sed -E 's/([a-zA-Z-]+)-[0-9.]+/*:\1,/g')" >> cabal.project
238+ fi
199239 $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: $_ installed\n" unless /^(haskell-src)$/; }' >> cabal.project.local
200240 cat cabal.project
201241 cat cabal.project.local
0 commit comments