Skip to content

Commit f2cd98e

Browse files
committed
Update packcheck and add ghc-9.12.1-alpha to the CI
1 parent 12879e3 commit f2cd98e

File tree

1 file changed

+40
-42
lines changed

1 file changed

+40
-42
lines changed

.github/workflows/haskell.yml

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)