Skip to content

Commit a367a83

Browse files
committed
Parameterize Dockerfiles and add GitHub Actions.
1 parent 39c7290 commit a367a83

File tree

3 files changed

+50
-10
lines changed

3 files changed

+50
-10
lines changed

.github/workflows/ci.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Build and Smoke Test
2+
3+
on:
4+
push:
5+
6+
jobs:
7+
ci:
8+
timeout-minutes: 30
9+
runs-on: ubuntu-18.04
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
ghc: [8.6.5, 8.8.1]
14+
include:
15+
- ghc: 8.6.5
16+
ghc_minor: 8.6
17+
- ghc: 8.8.1
18+
ghc_minor: 8.8
19+
steps:
20+
- uses: actions/checkout@v2
21+
- name: docker build [${{ matrix.ghc }}]
22+
uses: nick-invision/retry@v1
23+
with:
24+
timeout_minutes: 8
25+
max_attempts: 3
26+
command: docker build --pull --build-arg GHC=${{ matrix.ghc }} -t haskell:${{ matrix.ghc }} ${{ matrix.ghc_minor }}
27+
- uses: actions/checkout@v2
28+
with:
29+
repository: docker-library/official-images
30+
path: official-images
31+
- name: run official-images tests
32+
run: ./official-images/test/run.sh haskell:${{ matrix.ghc }}

8.6/Dockerfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@ RUN apt-get update && \
44
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr && \
55
rm -rf /var/lib/apt/lists/*
66

7+
ARG GHC=8.6.5
8+
ARG STACK=1.9.3
9+
ARG CABAL_INSTALL=2.4
10+
711
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 427CB69AAC9D00F2A43CAF1CBA3CBA3FFE22B574 && \
812
echo 'deb http://downloads.haskell.org/debian stretch main' > /etc/apt/sources.list.d/ghc.list && \
913
apt-get update && \
1014
apt-get install -y --no-install-recommends \
11-
cabal-install-2.4 \
15+
cabal-install-${CABAL_INSTALL} \
1216
curl \
1317
g++ \
14-
ghc-8.6.5 \
18+
ghc-${GHC} \
1519
git \
1620
libsqlite3-dev \
1721
libtinfo-dev \
@@ -24,14 +28,14 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 427CB69AAC9D00F2A43
2428

2529
RUN export GNUPGHOME="$(mktemp -d)" && \
2630
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys C5705533DA4F78D8664B5DC0575159689BEFB442 && \
27-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-linux-x86_64.tar.gz -o stack.tar.gz && \
28-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
31+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
32+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
2933
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
3034
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 && \
3135
/usr/local/bin/stack config set system-ghc --global true && \
3236
/usr/local/bin/stack config set install-ghc --global false && \
3337
rm -rf "$GNUPGHOME" /var/lib/apt/lists/* /stack.tar.gz.asc /stack.tar.gz
3438

35-
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/cabal/2.4/bin:/opt/ghc/8.6.5/bin:$PATH
39+
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/cabal/${CABAL_INSTALL}/bin:/opt/ghc/${GHC}/bin:$PATH
3640

3741
CMD ["ghci"]

8.8/Dockerfile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@ RUN apt-get update && \
44
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr && \
55
rm -rf /var/lib/apt/lists/*
66

7+
ARG GHC=8.8.1
8+
ARG STACK=2.1.3
9+
ARG CABAL_INSTALL=3.0
10+
711
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 427CB69AAC9D00F2A43CAF1CBA3CBA3FFE22B574 && \
812
echo 'deb http://downloads.haskell.org/debian stretch main' > /etc/apt/sources.list.d/ghc.list && \
913
apt-get update && \
1014
apt-get install -y --no-install-recommends \
11-
cabal-install-3.0 \
15+
cabal-install-${CABAL_INSTALL} \
1216
curl \
1317
g++ \
14-
ghc-8.8.1 \
18+
ghc-${GHC} \
1519
git \
1620
libsqlite3-dev \
1721
libtinfo-dev \
@@ -25,14 +29,14 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 427CB69AAC9D00F2A43
2529
RUN export GNUPGHOME="$(mktemp -d)" && \
2630
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys C5705533DA4F78D8664B5DC0575159689BEFB442 && \
2731
gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys 2C6A674E85EE3FB896AFC9B965101FF31C5C154D && \
28-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v2.1.3/stack-2.1.3-linux-x86_64.tar.gz -o stack.tar.gz && \
29-
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v2.1.3/stack-2.1.3-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
32+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz -o stack.tar.gz && \
33+
curl -fSL https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-x86_64.tar.gz.asc -o stack.tar.gz.asc && \
3034
gpg --batch --trusted-key 0x575159689BEFB442 --verify stack.tar.gz.asc stack.tar.gz && \
3135
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 && \
3236
/usr/local/bin/stack config set system-ghc --global true && \
3337
/usr/local/bin/stack config set install-ghc --global false && \
3438
rm -rf "$GNUPGHOME" /var/lib/apt/lists/* /stack.tar.gz.asc /stack.tar.gz
3539

36-
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/cabal/3.0/bin:/opt/ghc/8.8.1/bin:$PATH
40+
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/cabal/${CABAL_INSTALL}/bin:/opt/ghc/${GHC}/bin:$PATH
3741

3842
CMD ["ghci"]

0 commit comments

Comments
 (0)