diff options
author | Oleg Grenrus <oleg.grenrus@iki.fi> | 2019-02-18 22:44:54 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-02-22 23:41:25 -0500 |
commit | 4b752d52761be4795fd83698b3290df455f0c3ea (patch) | |
tree | ce86f158ae11c9ec61bbe95832e24bd9f4c6905f | |
parent | 806cc234426dca41e1c799e9e6212cf9e352d180 (diff) | |
download | haskell-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/Dockerfile | 1 | ||||
-rw-r--r-- | .circleci/images/i386-linux-deb8/Dockerfile | 19 | ||||
-rw-r--r-- | .circleci/images/i386-linux-deb9/Dockerfile | 21 | ||||
-rw-r--r-- | .circleci/images/x86_64-linux-centos7/Dockerfile | 22 | ||||
-rw-r--r-- | .circleci/images/x86_64-linux-deb8/Dockerfile | 27 | ||||
-rw-r--r-- | .circleci/images/x86_64-linux-deb9/Dockerfile | 16 | ||||
-rw-r--r-- | .circleci/images/x86_64-linux-fedora27/Dockerfile | 22 |
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"] |