|
8 | 8 | # |
9 | 9 | # For more information, see https://github.com/haskell-CI/haskell-ci |
10 | 10 | # |
11 | | -# version: 0.19.20240514 |
| 11 | +# version: 0.19.20241121 |
12 | 12 | # |
13 | | -# REGENDATA ("0.19.20240514",["github","cabal.project"]) |
| 13 | +# REGENDATA ("0.19.20241121",["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.12.0.20241114 |
| 36 | + compilerKind: ghc |
| 37 | + compilerVersion: 9.12.0.20241114 |
| 38 | + setup-method: ghcup-prerelease |
| 39 | + allow-failure: false |
35 | 40 | - compiler: ghc-9.10.1 |
36 | 41 | compilerKind: ghc |
37 | 42 | compilerVersion: 9.10.1 |
@@ -79,40 +84,60 @@ jobs: |
79 | 84 | allow-failure: false |
80 | 85 | fail-fast: false |
81 | 86 | steps: |
82 | | - - name: apt |
| 87 | + - name: apt-get install |
83 | 88 | run: | |
84 | 89 | apt-get update |
85 | 90 | apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5 |
| 91 | + - name: Install GHCup |
| 92 | + run: | |
86 | 93 | mkdir -p "$HOME/.ghcup/bin" |
87 | | - curl -sL https://downloads.haskell.org/ghcup/0.1.20.0/x86_64-linux-ghcup-0.1.20.0 > "$HOME/.ghcup/bin/ghcup" |
| 94 | + curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup" |
88 | 95 | chmod a+x "$HOME/.ghcup/bin/ghcup" |
| 96 | + - name: Install cabal-install |
| 97 | + run: | |
| 98 | + "$HOME/.ghcup/bin/ghcup" install cabal 3.12.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false) |
| 99 | + echo "CABAL=$HOME/.ghcup/bin/cabal-3.12.1.0 -vnormal+nowrap" >> "$GITHUB_ENV" |
| 100 | + - name: Install GHC (GHCup) |
| 101 | + if: matrix.setup-method == 'ghcup' |
| 102 | + run: | |
89 | 103 | "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false) |
90 | | - "$HOME/.ghcup/bin/ghcup" install cabal 3.10.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false) |
| 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" |
91 | 110 | env: |
92 | 111 | HCKIND: ${{ matrix.compilerKind }} |
93 | 112 | HCNAME: ${{ matrix.compiler }} |
94 | 113 | HCVER: ${{ matrix.compilerVersion }} |
95 | | - - name: Set PATH and environment variables |
| 114 | + - name: Install GHC (GHCup prerelease) |
| 115 | + if: matrix.setup-method == 'ghcup-prerelease' |
96 | 116 | run: | |
97 | | - echo "$HOME/.cabal/bin" >> $GITHUB_PATH |
98 | | - echo "LANG=C.UTF-8" >> "$GITHUB_ENV" |
99 | | - echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV" |
100 | | - echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV" |
101 | | - HCDIR=/opt/$HCKIND/$HCVER |
| 117 | + "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.8.yaml; |
| 118 | + "$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false) |
102 | 119 | HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER") |
103 | 120 | HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#') |
104 | 121 | HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#') |
105 | 122 | echo "HC=$HC" >> "$GITHUB_ENV" |
106 | 123 | echo "HCPKG=$HCPKG" >> "$GITHUB_ENV" |
107 | 124 | echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV" |
108 | | - echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.2.0 -vnormal+nowrap" >> "$GITHUB_ENV" |
| 125 | + env: |
| 126 | + HCKIND: ${{ matrix.compilerKind }} |
| 127 | + HCNAME: ${{ matrix.compiler }} |
| 128 | + HCVER: ${{ matrix.compilerVersion }} |
| 129 | + - name: Set PATH and environment variables |
| 130 | + run: | |
| 131 | + echo "$HOME/.cabal/bin" >> $GITHUB_PATH |
| 132 | + echo "LANG=C.UTF-8" >> "$GITHUB_ENV" |
| 133 | + echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV" |
| 134 | + echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV" |
109 | 135 | HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))') |
110 | 136 | echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV" |
111 | 137 | echo "ARG_TESTS=--enable-tests" >> "$GITHUB_ENV" |
112 | 138 | echo "ARG_BENCH=--enable-benchmarks" >> "$GITHUB_ENV" |
113 | 139 | echo "HEADHACKAGE=false" >> "$GITHUB_ENV" |
114 | 140 | echo "ARG_COMPILER=--$HCKIND --with-compiler=$HC" >> "$GITHUB_ENV" |
115 | | - echo "GHCJSARITH=0" >> "$GITHUB_ENV" |
116 | 141 | env: |
117 | 142 | HCKIND: ${{ matrix.compilerKind }} |
118 | 143 | HCNAME: ${{ matrix.compiler }} |
@@ -164,8 +189,8 @@ jobs: |
164 | 189 | - name: install cabal-docspec |
165 | 190 | run: | |
166 | 191 | mkdir -p $HOME/.cabal/bin |
167 | | - curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20240414/cabal-docspec-0.0.0.20240414-x86_64-linux.xz > cabal-docspec.xz |
168 | | - echo '2d18a3f79619e8ec5f11870f926f6dc2616e02a6c889315b7f82044b95a1adb9 cabal-docspec.xz' | sha256sum -c - |
| 192 | + curl -sL https://github.com/phadej/cabal-extras/releases/download/cabal-docspec-0.0.0.20240703/cabal-docspec-0.0.0.20240703-x86_64-linux.xz > cabal-docspec.xz |
| 193 | + echo '48bf3b7fd2f7f0caa6162afee57a755be8523e7f467b694900eb420f5f9a7b76 cabal-docspec.xz' | sha256sum -c - |
169 | 194 | xz -d < cabal-docspec.xz > $HOME/.cabal/bin/cabal-docspec |
170 | 195 | rm -f cabal-docspec.xz |
171 | 196 | chmod a+x $HOME/.cabal/bin/cabal-docspec |
@@ -228,7 +253,6 @@ jobs: |
228 | 253 | echo "package aeson-benchmarks" >> cabal.project |
229 | 254 | echo " ghc-options: -Werror=missing-methods" >> cabal.project |
230 | 255 | cat >> cabal.project <<EOF |
231 | | - allow-newer: hermes-json:attoparsec-iso8601 |
232 | 256 | EOF |
233 | 257 | $HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(aeson|aeson-benchmarks|aeson-examples|attoparsec-aeson|attoparsec-iso8601|text-iso8601)$/; }' >> cabal.project.local |
234 | 258 | cat cabal.project |
@@ -279,8 +303,8 @@ jobs: |
279 | 303 | $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='aeson +ordered-keymap' all |
280 | 304 | $CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='aeson +ordered-keymap' all |
281 | 305 | - name: save cache |
282 | | - uses: actions/cache/save@v4 |
283 | 306 | if: always() |
| 307 | + uses: actions/cache/save@v4 |
284 | 308 | with: |
285 | 309 | key: ${{ runner.os }}-${{ matrix.compiler }}-${{ github.sha }} |
286 | 310 | path: ~/.cabal/store |
0 commit comments