summaryrefslogtreecommitdiff
path: root/.circleci/images/linters/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to '.circleci/images/linters/Dockerfile')
-rw-r--r--.circleci/images/linters/Dockerfile30
1 files changed, 30 insertions, 0 deletions
diff --git a/.circleci/images/linters/Dockerfile b/.circleci/images/linters/Dockerfile
new file mode 100644
index 0000000000..cd9aa30e69
--- /dev/null
+++ b/.circleci/images/linters/Dockerfile
@@ -0,0 +1,30 @@
+FROM debian:stretch
+
+ENV LANG C.UTF-8
+
+RUN apt-get update -qq; apt-get install -qy gnupg sudo git python3
+
+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
+RUN apt-get update -qq
+
+# Basic Haskell toolchain
+RUN apt-get install -qy cabal-install-2.2 ghc-8.4.2
+ENV PATH /home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
+
+# 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 Linting tools
+RUN cabal update
+
+RUN git clone git://github.com/haskell-infra/git-haskell-org-hooks && \
+ cd git-haskell-org-hooks && \
+ cabal install
+
+ENV PATH /home/ghc/.cabal/bin:$PATH
+
+CMD ["bash"]