summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg Grenrus <oleg.grenrus@iki.fi>2019-02-18 22:44:54 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-02-22 23:41:25 -0500
commit4b752d52761be4795fd83698b3290df455f0c3ea (patch)
treece86f158ae11c9ec61bbe95832e24bd9f4c6905f
parent806cc234426dca41e1c799e9e6212cf9e352d180 (diff)
downloadhaskell-4b752d52761be4795fd83698b3290df455f0c3ea.tar.gz
Update CI images to GHC-8.4.4 & cabal-install-2.4.1.0
Use official bindists, except for Debian 9/Stretch http://downloads.haskell.org/debian/ is used. (There are no recent GHC/cabal-install for Debian 8/Jessie there) Use v2-update/v2-install to install Haskell tools. Try to unify structure of the different Dockerfiles, incl installing GHC in one step (this will prevent sublayers from existing, making final image slightly smaller)
-rw-r--r--.circleci/images/aarch64-linux-deb9/Dockerfile1
-rw-r--r--.circleci/images/i386-linux-deb8/Dockerfile19
-rw-r--r--.circleci/images/i386-linux-deb9/Dockerfile21
-rw-r--r--.circleci/images/x86_64-linux-centos7/Dockerfile22
-rw-r--r--.circleci/images/x86_64-linux-deb8/Dockerfile27
-rw-r--r--.circleci/images/x86_64-linux-deb9/Dockerfile16
-rw-r--r--.circleci/images/x86_64-linux-fedora27/Dockerfile22
7 files changed, 69 insertions, 59 deletions
diff --git a/.circleci/images/aarch64-linux-deb9/Dockerfile b/.circleci/images/aarch64-linux-deb9/Dockerfile
index f871f75b2f..0920938719 100644
--- a/.circleci/images/aarch64-linux-deb9/Dockerfile
+++ b/.circleci/images/aarch64-linux-deb9/Dockerfile
@@ -57,6 +57,7 @@ ENV PATH /home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
RUN adduser ghc --gecos "GHC builds" --disabled-password
RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
USER ghc
+WORKDIR /home/ghc/
# Build Haskell tools
RUN cabal update && \
diff --git a/.circleci/images/i386-linux-deb8/Dockerfile b/.circleci/images/i386-linux-deb8/Dockerfile
index c8e51810c2..f36c9d5290 100644
--- a/.circleci/images/i386-linux-deb8/Dockerfile
+++ b/.circleci/images/i386-linux-deb8/Dockerfile
@@ -19,27 +19,26 @@ RUN apt-get install -qy python3-sphinx texlive-xetex texlive-latex-extra
RUN apt-get install -qy libgmp-dev:i386
# Get i386 GHC bindist for 32 bit CI builds.
-RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-i386-deb8-linux.tar.xz | tar -Jx
-RUN cd /tmp/ghc-8.4.2 && setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.2 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux
-RUN cd /tmp/ghc-8.4.2 && make install
-RUN rm -rf /tmp/ghc-8.4.2
-ENV PATH /opt/ghc-i386/8.4.2/bin:$PATH
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz | tar -Jx; \
+ cd /tmp/ghc-8.4.4 && setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.4 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \
+ cd /tmp/ghc-8.4.4 && make install; \
+ rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc-i386/8.4.4/bin:$PATH
# Get Cabal
RUN cd /tmp && \
- curl https://www.haskell.org/cabal/release/cabal-install-2.2.0.0/cabal-install-2.2.0.0-i386-unknown-linux.tar.gz | tar -zx && \
+ curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
# Create a normal user.
RUN adduser ghc --gecos "GHC builds" --disabled-password
RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
USER ghc
+WORKDIR /home/ghc/
# Build Haskell tools
-RUN cabal update && \
- cabal install hscolour happy alex
+RUN cabal v2-update && \
+ cabal v2-install hscolour happy alex
ENV PATH /home/ghc/.cabal/bin:$PATH
-WORKDIR /home/ghc/
-
CMD ["bash"]
diff --git a/.circleci/images/i386-linux-deb9/Dockerfile b/.circleci/images/i386-linux-deb9/Dockerfile
index c8e51810c2..69b6bdfb22 100644
--- a/.circleci/images/i386-linux-deb9/Dockerfile
+++ b/.circleci/images/i386-linux-deb9/Dockerfile
@@ -1,4 +1,4 @@
-FROM i386/debian:jessie
+FROM i386/debian:stretch
ENV LANG C.UTF-8
@@ -19,27 +19,26 @@ RUN apt-get install -qy python3-sphinx texlive-xetex texlive-latex-extra
RUN apt-get install -qy libgmp-dev:i386
# Get i386 GHC bindist for 32 bit CI builds.
-RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-i386-deb8-linux.tar.xz | tar -Jx
-RUN cd /tmp/ghc-8.4.2 && setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.2 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux
-RUN cd /tmp/ghc-8.4.2 && make install
-RUN rm -rf /tmp/ghc-8.4.2
-ENV PATH /opt/ghc-i386/8.4.2/bin:$PATH
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz | tar -Jx; \
+ cd /tmp/ghc-8.4.4 && setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.4 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \
+ cd /tmp/ghc-8.4.4 && make install; \
+ rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc-i386/8.4.4/bin:$PATH
# Get Cabal
RUN cd /tmp && \
- curl https://www.haskell.org/cabal/release/cabal-install-2.2.0.0/cabal-install-2.2.0.0-i386-unknown-linux.tar.gz | tar -zx && \
+ curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
# Create a normal user.
RUN adduser ghc --gecos "GHC builds" --disabled-password
RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
USER ghc
+WORKDIR /home/ghc/
# Build Haskell tools
-RUN cabal update && \
- cabal install hscolour happy alex
+RUN cabal v2-update && \
+ cabal v2-install hscolour happy alex
ENV PATH /home/ghc/.cabal/bin:$PATH
-WORKDIR /home/ghc/
-
CMD ["bash"]
diff --git a/.circleci/images/x86_64-linux-centos7/Dockerfile b/.circleci/images/x86_64-linux-centos7/Dockerfile
index 32acea5ca3..586494976f 100644
--- a/.circleci/images/x86_64-linux-centos7/Dockerfile
+++ b/.circleci/images/x86_64-linux-centos7/Dockerfile
@@ -33,12 +33,16 @@ ENV PATH /usr/libexec/python3-sphinx:$PATH
RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
# Install GHC and cabal
-RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz | tar -Jx
-RUN cd /tmp/ghc-8.4.2 && ./configure --prefix=/opt/ghc/8.4.2
-RUN cd /tmp/ghc-8.4.2 && make install
-RUN mkdir -p /opt/cabal/bin
-RUN cd /opt/cabal/bin && curl https://www.haskell.org/cabal/release/cabal-install-2.2.0.0/cabal-install-2.2.0.0-x86_64-unknown-linux.tar.gz | tar -zx
-ENV PATH /opt/ghc/8.4.2/bin:/opt/cabal/bin:$PATH
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-centos70-linux.tar.xz | tar -Jx; \
+ cd /tmp/ghc-8.4.4 && ./configure --prefix=/opt/ghc/8.4.4; \
+ cd /tmp/ghc-8.4.4 && make install; \
+ rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc/8.4.4/bin:$PATH
+
+# Get Cabal
+RUN cd /tmp && \
+ curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz | tar -Jx && \
+ mv cabal /usr/local/bin/cabal
# Create a normal user.
RUN adduser ghc --comment "GHC builds"
@@ -46,9 +50,9 @@ RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
USER ghc
WORKDIR /home/ghc/
-# Install Alex, Happy, and HsColor with Cabal
-RUN cabal update && \
- cabal install hscolour happy alex
+# Build Haskell tools
+RUN cabal v2-update && \
+ cabal v2-install hscolour happy alex
ENV PATH /home/ghc/.cabal/bin:$PATH
CMD ["bash"]
diff --git a/.circleci/images/x86_64-linux-deb8/Dockerfile b/.circleci/images/x86_64-linux-deb8/Dockerfile
index 0491ad9bba..7797707287 100644
--- a/.circleci/images/x86_64-linux-deb8/Dockerfile
+++ b/.circleci/images/x86_64-linux-deb8/Dockerfile
@@ -2,34 +2,37 @@ FROM debian:jessie
ENV LANG C.UTF-8
-RUN echo 'deb http://ppa.launchpad.net/hvr/ghc/ubuntu trusty main' > /etc/apt/sources.list.d/ghc.list
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F6F88286
-RUN apt-get update -qq
-
# Core build utilities
+RUN apt-get update -qq
RUN apt-get install -qy zlib1g-dev libtinfo-dev libsqlite3-0 libsqlite3-dev \
ca-certificates g++ git make automake autoconf gcc \
- perl python3 texinfo xz-utils lbzip2 patch openssh-client sudo \
+ perl python3 texinfo xz-utils lbzip2 patch openssh-client sudo libgmp-dev \
jq wget curl
# Documentation tools
RUN apt-get install -qy python3-sphinx texlive-xetex texlive-latex-extra
-# Basic Haskell toolchain
-RUN apt-get install -qy cabal-install-2.2 ghc-8.4.2
+# Install GHC and cabal
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb8-linux.tar.xz | tar -Jx; \
+ cd /tmp/ghc-8.4.4 && ./configure --prefix=/opt/ghc/8.4.4; \
+ cd /tmp/ghc-8.4.4 && make install; \
+ rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc/8.4.4/bin:$PATH
-ENV PATH /home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
+# Get Cabal
+RUN cd /tmp && \
+ curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz | tar -Jx && \
+ mv cabal /usr/local/bin/cabal
# Create a normal user.
RUN adduser ghc --gecos "GHC builds" --disabled-password
RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
USER ghc
+WORKDIR /home/ghc/
# Build Haskell tools
-RUN cabal update && \
- cabal install hscolour happy alex
+RUN cabal v2-update && \
+ cabal v2-install hscolour happy alex
ENV PATH /home/ghc/.cabal/bin:$PATH
-WORKDIR /home/ghc/
-
CMD ["bash"]
diff --git a/.circleci/images/x86_64-linux-deb9/Dockerfile b/.circleci/images/x86_64-linux-deb9/Dockerfile
index 5341abe6ef..15ae41a2e4 100644
--- a/.circleci/images/x86_64-linux-deb9/Dockerfile
+++ b/.circleci/images/x86_64-linux-deb9/Dockerfile
@@ -4,8 +4,9 @@ ENV LANG C.UTF-8
RUN apt-get update -qq; apt-get install -qy gnupg
-RUN echo 'deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main' > /etc/apt/sources.list.d/ghc.list
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F6F88286
+# http://downloads.haskell.org/debian/
+RUN echo 'deb http://downloads.haskell.org/debian stretch main' > /etc/apt/sources.list.d/ghc.list
+RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA3CBA3FFE22B574
RUN apt-get update -qq
# Core build utilities
@@ -18,9 +19,9 @@ RUN apt-get install -qy zlib1g-dev libtinfo-dev libsqlite3-0 libsqlite3-dev \
RUN apt-get install -qy python3-sphinx texlive-xetex texlive-latex-extra
# Basic Haskell toolchain
-RUN apt-get install -qy cabal-install-2.2 ghc-8.4.2
+RUN apt-get install -qy cabal-install-2.4 ghc-8.4.4
-ENV PATH /home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
+ENV PATH /home/ghc/.local/bin:/opt/cabal/2.4/bin:/opt/ghc/8.4.4/bin:$PATH
# LLVM
ENV LLVM_TARBALL http://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
@@ -35,12 +36,11 @@ RUN curl $LLVM_TARBALL | tar -xJC ..; \
RUN adduser ghc --gecos "GHC builds" --disabled-password
RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
USER ghc
+WORKDIR /home/ghc/
# Build Haskell tools
-RUN cabal update && \
- cabal install hscolour happy alex
+RUN cabal v2-update && \
+ cabal v2-install hscolour happy alex
ENV PATH /home/ghc/.cabal/bin:$PATH
-WORKDIR /home/ghc/
-
CMD ["bash"]
diff --git a/.circleci/images/x86_64-linux-fedora27/Dockerfile b/.circleci/images/x86_64-linux-fedora27/Dockerfile
index 6fad77f1c5..3d494c23d6 100644
--- a/.circleci/images/x86_64-linux-fedora27/Dockerfile
+++ b/.circleci/images/x86_64-linux-fedora27/Dockerfile
@@ -29,12 +29,16 @@ ENV PATH /usr/libexec/python3-sphinx:$PATH
RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
# Install GHC and cabal
-RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz | tar -Jx
-RUN cd /tmp/ghc-8.4.2 && ./configure --prefix=/opt/ghc/8.4.2
-RUN cd /tmp/ghc-8.4.2 && make install
-RUN mkdir -p /opt/cabal/bin
-RUN cd /opt/cabal/bin && curl https://www.haskell.org/cabal/release/cabal-install-2.2.0.0/cabal-install-2.2.0.0-x86_64-unknown-linux.tar.gz | tar -zx
-ENV PATH /opt/ghc/8.4.2/bin:/opt/cabal/bin:$PATH
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-fedora27-linux.tar.xz | tar -Jx; \
+ cd /tmp/ghc-8.4.4 && ./configure --prefix=/opt/ghc/8.4.4; \
+ cd /tmp/ghc-8.4.4 && make install; \
+ rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc/8.4.4/bin:$PATH
+
+# Get Cabal
+RUN cd /tmp && \
+ curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz | tar -Jx && \
+ mv cabal /usr/local/bin/cabal
# Create a normal user.
RUN adduser ghc --comment "GHC builds"
@@ -42,9 +46,9 @@ RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
USER ghc
WORKDIR /home/ghc/
-# Install Alex, Happy, and HsColor with Cabal
-RUN cabal update && \
- cabal install hscolour happy alex
+# Build Haskell tools
+RUN cabal v2-update && \
+ cabal v2-install hscolour happy alex
ENV PATH /home/ghc/.cabal/bin:$PATH
CMD ["bash"]