Skip to content

Commit c9eee4f

Browse files
committed
Support ghc 9.2
I have left ghc 8.10 support as 9.0 is not in a good state. Once 9.0.2 is out I think we should be good to drop 8.10.
1 parent f08ade4 commit c9eee4f

File tree

2 files changed

+85
-1
lines changed

2 files changed

+85
-1
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@ jobs:
1313
strategy:
1414
fail-fast: false
1515
matrix:
16-
ghc: ['8.10.7', '9.0.1']
16+
ghc: ['8.10.7', '9.0.1', '9.2.1']
1717
deb: ['buster']
1818
include:
1919
- ghc: '8.10.7'
2020
ghc_minor: '8.10'
2121
- ghc: '9.0.1'
2222
ghc_minor: '9.0'
23+
- ghc: '9.2.1'
24+
ghc_minor: '9.2'
2325
steps:
2426
- uses: actions/checkout@v2
2527
- name: docker build [${{ matrix.ghc }}]

9.2/buster/Dockerfile

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
FROM debian:buster
2+
3+
ENV LANG C.UTF-8
4+
5+
# common haskell + stack dependencies
6+
RUN apt-get update && \
7+
apt-get install -y --no-install-recommends \
8+
ca-certificates \
9+
curl \
10+
git \
11+
gcc \
12+
gnupg \
13+
g++ \
14+
libc6-dev \
15+
libffi-dev \
16+
libgmp-dev \
17+
libnuma-dev \
18+
libsqlite3-dev \
19+
libtinfo-dev \
20+
make \
21+
netbase \
22+
openssh-client \
23+
xz-utils \
24+
zlib1g-dev && \
25+
rm -rf /var/lib/apt/lists/*
26+
27+
ARG CABAL_INSTALL=3.6.2.0
28+
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
29+
# get from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
30+
ARG CABAL_INSTALL_RELEASE_SHA256=4759B56E9257E02F29FA374A6B25D6CB2F9D80C7E3A55D4F678A8E570925641C
31+
32+
RUN cd /tmp && \
33+
export GNUPGHOME="$(mktemp -d)" && \
34+
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${CABAL_INSTALL_RELEASE_KEY} && \
35+
curl -fSLO https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS && \
36+
curl -fSLO https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS.sig && \
37+
gpg --batch --trusted-key B3D9F94B8DCAE210 --verify SHA256SUMS.sig SHA256SUMS && \
38+
curl -fSL https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/cabal-install-$CABAL_INSTALL-x86_64-linux-deb10.tar.xz -o cabal-install.tar.gz && \
39+
echo "$CABAL_INSTALL_RELEASE_SHA256 cabal-install.tar.gz" | sha256sum --strict --check && \
40+
tar -xf cabal-install.tar.gz -C /usr/local/bin && \
41+
rm -rf "$GNUPGHOME" /var/lib/apt/lists/* /tmp/*
42+
43+
ARG GHC=9.2.1
44+
ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
45+
# get from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
46+
ARG GHC_RELEASE_SHA256=53F1650ED092230480FF5750B94F409E5DFE66BD07CED00BBBCDF5D6B180234C
47+
48+
RUN cd /tmp && \
49+
export GNUPGHOME="$(mktemp -d)" && \
50+
curl -sSL https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-x86_64-deb10-linux.tar.xz -o ghc.tar.xz && \
51+
curl -sSL https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-x86_64-deb10-linux.tar.xz.sig -o ghc.tar.xz.sig && \
52+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys ${GHC_RELEASE_KEY} && \
53+
gpg --batch --trusted-key 2DE04D4E97DB64AD --verify ghc.tar.xz.sig ghc.tar.xz && \
54+
echo "$GHC_RELEASE_SHA256 ghc.tar.xz" | sha256sum --strict --check && \
55+
tar xf ghc.tar.xz && \
56+
cd ghc-$GHC && \
57+
./configure --prefix /opt/ghc/$GHC && \
58+
make install && \
59+
find /opt/ghc/$GHC/ \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete && \
60+
rm -rf /opt/ghc/$GHC/share/ && \
61+
rm -rf "$GNUPGHOME" /tmp/*
62+
63+
ARG STACK=2.7.3
64+
ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
65+
# get from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.sha256
66+
ARG STACK_RELEASE_SHA256=A6C090555FA1C64AA61C29AA4449765A51D79E870CF759CDE192937CD614E72B
67+
68+
RUN cd /tmp && \
69+
export GNUPGHOME="$(mktemp -d)" && \
70+
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys ${STACK_RELEASE_KEY} && \
71+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
72+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
73+
gpg --batch --trusted-key 575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
74+
echo "$STACK_RELEASE_SHA256 stack.tar.gz" | sha256sum --strict --check && \
75+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 stack-$STACK-linux-x86_64/stack && \
76+
/usr/local/bin/stack config set system-ghc --global true && \
77+
/usr/local/bin/stack config set install-ghc --global false && \
78+
rm -rf "$GNUPGHOME" /var/lib/apt/lists/* /tmp/*
79+
80+
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
81+
82+
CMD ["ghci"]

0 commit comments

Comments
 (0)