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