@@ -29,13 +29,15 @@ jobs:
2929 # ------------------------------------------------------------------------
3030 PACKCHECK_LOCAL_PATH : " ./packcheck.sh"
3131 PACKCHECK_GITHUB_URL : " https://raw.githubusercontent.com/composewell/packcheck"
32- PACKCHECK_GITHUB_COMMIT : " v0.6.0 "
32+ PACKCHECK_GITHUB_COMMIT : " e575ff318c93add2a6d3f9107a52c5e37c666a98 "
3333
3434 # ------------------------------------------------------------------------
3535 # Build options
3636 # ------------------------------------------------------------------------
37+ GHCUP_VERSION : 0.1.20.0
3738 BUILD : cabal-v2 ${{ matrix.pack_options }}
3839 GHCVER : ${{ matrix.ghc_version }}
40+ CABALVER : ${{ matrix.cabal_version }}
3941
4042 runs-on : ${{ matrix.runner }}
4143 # [NOTE] The following is a hack to fix the lack of “allow-failure” feature.
@@ -58,61 +60,61 @@ jobs:
5860 - 9.6.5
5961 - 9.8.2
6062 - 9.10.1+ucd2haskell
61- - latest-nightly
63+ - 9.12.1-alpha
6264 - hlint
6365 include :
6466
6567 - name : 8.0.2
6668 ghc_version : 8.0.2
6769 runner : ubuntu-latest
68- cabal_version : latest
70+ cabal_version : 3.2.0.0
6971 pack_options : DISABLE_TEST=y
7072 ignore_error : false
7173
7274 - name : 8.2.2
7375 ghc_version : 8.2.2
7476 runner : ubuntu-latest
75- cabal_version : 3.2
77+ cabal_version : 3.2.0.0
7678 pack_options : DISABLE_TEST=y
7779 ignore_error : false
7880
7981 - name : 8.4.4
8082 ghc_version : 8.4.4
8183 runner : ubuntu-latest
82- cabal_version : 3.2
84+ cabal_version : 3.2.0.0
8385 pack_options : DISABLE_TEST=y
8486 ignore_error : false
8587
8688 - name : 8.6.5
8789 ghc_version : 8.6.5
8890 runner : ubuntu-latest
89- cabal_version : 3.2
91+ cabal_version : 3.2.0.0
9092 ignore_error : false
9193
9294 - name : 8.8.4
9395 ghc_version : 8.8.4
9496 runner : ubuntu-latest
95- cabal_version : 3.2
97+ cabal_version : 3.2.0.0
9698 ignore_error : false
9799
98100 - name : 8.10.7
99101 ghc_version : 8.10.7
100102 runner : ubuntu-latest
101- cabal_version : 3.2
103+ cabal_version : 3.2.0.0
102104 ignore_error : false
103105
104106 - name : 9.0.2
105107 ghc_version : 9.0.2
106108 runner : ubuntu-latest
107- cabal_version : 3.2
109+ cabal_version : 3.2.0.0
108110 ignore_error : false
109111
110112 - name : 9.2.8+ucd2haskell
111113 ghc_version : 9.2.8
112114 # [NOTE] Oldest version supported by ucd2haskell
113115 pack_options : CABAL_BUILD_OPTIONS="-f ucd2haskell"
114116 runner : ubuntu-latest
115- cabal_version : 3.6
117+ cabal_version : 3.6.2.0
116118 ignore_error : false
117119
118120 - name : 9.4.8
@@ -124,7 +126,7 @@ jobs:
124126 - name : 9.4.8+macOS
125127 ghc_version : 9.4.8
126128 runner : macos-latest
127- cabal_version : latest
129+ cabal_version : 3.10.1.0
128130 ignore_error : false
129131
130132 - name : 9.6.5
@@ -135,15 +137,22 @@ jobs:
135137
136138 - name : 9.8.2
137139 ghc_version : 9.8.2
140+ cabal_version : 3.12.1.0
138141 runner : ubuntu-latest
139- cabal_version : latest
140142 ignore_error : false
141143
142144 - name : 9.10.1+ucd2haskell
143145 ghc_version : 9.10.1
146+ cabal_version : 3.12.1.0
144147 pack_options : CABAL_BUILD_OPTIONS="-f ucd2haskell"
145148 runner : ubuntu-latest
146- cabal_version : latest
149+ ignore_error : false
150+
151+ - name : 9.12.1-alpha
152+ ghc_version : head
153+ cabal_version : 3.12.1.0
154+ pack_options : GHCUP_GHC_OPTIONS="-u https://downloads.haskell.org/ghc/9.12.1-alpha1/ghc-9.12.20241014-x86_64-deb12-linux.tar.xz" DISABLE_TEST=y
155+ runner : ubuntu-latest
147156 ignore_error : false
148157
149158 # Template for release candidates
@@ -154,50 +163,39 @@ jobs:
154163 # cabal_version: latest
155164 # ignore_error: false
156165
157- # [TODO] Use latest cabal (pre-)release
158- - name : latest-nightly
159- ghc_version : latest-nightly
160- ghcup_release_channel : " https://ghc.gitlab.haskell.org/ghcup-metadata/ghcup-nightlies-0.0.7.yaml"
161- runner : ubuntu-latest
162- # cabal_version: 3.11.0.0
163- cabal_version : latest
164- ignore_error : true
165-
166166 - name : hlint
167167 pack_options : HLINT_OPTIONS="lint" HLINT_TARGETS="lib exe"
168168 runner : ubuntu-latest
169- cabal_version : 3.2
169+ cabal_version : 3.2.0.0
170170 ignore_error : false
171171
172172 steps :
173173 - uses : actions/checkout@v4
174174
175- - uses : haskell-actions/setup@v2
176- with :
177- ghc-version : ${{ matrix.ghc_version }}
178- ghcup-release-channel : ${{ matrix.ghcup_release_channel }}
179- cabal-version : ${{ matrix.cabal_version }}
180-
181175 - uses : actions/cache@v4
182176 name : Cache ~/.cabal
183177 with :
184178 path : ~/.cabal
185- key : ${{ runner.os }}-${{ matrix.ghc_version }}-cabal
179+ key : ${{ runner.os }}-${{ matrix.ghc_version }}-1
186180
187181 - name : Download packcheck
188182 run : |
189- # If a custom stack-yaml is specified, replace the default with that
190- if test -e "$STACK_YAML"; then rm -f stack.yaml && ln -sv $STACK_YAML stack.yaml; else true; fi
191- unset STACK_YAML
192-
193- # Get packcheck if needed
194- CURL=$(which curl)
195- PACKCHECK_URL=${PACKCHECK_GITHUB_URL}/${PACKCHECK_GITHUB_COMMIT}/packcheck.sh
196- if test ! -e "$PACKCHECK_LOCAL_PATH"; then $CURL -sL -o "$PACKCHECK_LOCAL_PATH" $PACKCHECK_URL; fi;
197- chmod +x $PACKCHECK_LOCAL_PATH
183+ if test ! -e "$PACKCHECK_LOCAL_PATH"
184+ then
185+ if test -z "$PACKCHECK_GITHUB_COMMIT"
186+ then
187+ die "PACKCHECK_GITHUB_COMMIT is not specified."
188+ fi
189+ PACKCHECK_URL=${PACKCHECK_GITHUB_URL}/${PACKCHECK_GITHUB_COMMIT}/packcheck.sh
190+ curl --fail -sL -o "$PACKCHECK_LOCAL_PATH" $PACKCHECK_URL || exit 1
191+ chmod +x $PACKCHECK_LOCAL_PATH
192+ elif test ! -x "$PACKCHECK_LOCAL_PATH"
193+ then
194+ chmod +x $PACKCHECK_LOCAL_PATH
195+ fi
198196
199197 - name : Run packcheck
200198 run : |
201- # Unset GHC version if it is not numeric, e.g. “latest-nightly”
202- ! [[ $GHCVER =~ ^([[:digit:]]+) ]] && unset GHCVER
203- bash -c "$PACKCHECK_LOCAL_PATH $BUILD"
199+ # /usr/local/opt/curl/bin for macOS
200+ export PATH=$HOME/.local/bin:$HOME/.ghcup/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/opt/curl/bin
201+ bash -x - c "$PACKCHECK_LOCAL_PATH $BUILD"
0 commit comments