summaryrefslogtreecommitdiff
path: root/.circleci
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 /.circleci
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)
Diffstat (limited to '.circleci')
-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"]