diff --git a/ci_build/Dockerfile b/ci_build/Dockerfile new file mode 100644 index 0000000..bf2f426 --- /dev/null +++ b/ci_build/Dockerfile @@ -0,0 +1,35 @@ +# Image for launching TensorFlow Haskell tests. Unlike the +# development image in docker/Dockerfile, this one doesn't require +# stack to be installed on the host. This comes at the expense of +# flexibility. + +FROM tensorflow/tensorflow:nightly-devel +MAINTAINER TensorFlow authors + +# The build context directory is the top of the tensorflow-haskell +# tree. +ADD . /tfhs +WORKDIR /tfhs + +RUN \ + apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442 && \ + echo 'deb http://download.fpcomplete.com/ubuntu trusty main'| tee /etc/apt/sources.list.d/fpco.list && \ + apt-get update && \ + apt-get install -y \ + # Avoids /usr/bin/ld: cannot find -ltinfo + libncurses5-dev \ + # Makes stack viable in the container + libgmp-dev \ + libcurl3-dev \ + stack && \ + git submodule init && git submodule update && \ + # Installs protoc and the libraries. + ( cd third_party/tensorflow && \ + tensorflow/tools/ci_build/builds/configured CPU && \ + bazel build -c opt '@protobuf//:protoc' && \ + install -s bazel-bin/external/protobuf/protoc /usr/local/bin && \ + bazel build -c opt '//tensorflow:libtensorflow_c.so' && \ + install bazel-bin/tensorflow/libtensorflow_c.so /usr/local/lib && \ + ldconfig ) && \ + stack setup && \ + stack test --only-dependencies diff --git a/ci_build/outer_launch_tests.sh b/ci_build/outer_launch_tests.sh new file mode 100755 index 0000000..a9f935f --- /dev/null +++ b/ci_build/outer_launch_tests.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Builds a test image and runs the tests inside. + +set -eu -o pipefail + +IMAGE_NAME=tensorflow/haskell/ci_build:v0 + +git submodule update +docker build -t $IMAGE_NAME -f ci_build/Dockerfile . +docker run -ti $IMAGE_NAME stack test diff --git a/docker/Dockerfile b/docker/Dockerfile index aaf103e..2864c10 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -9,6 +9,7 @@ RUN \ install -s bazel-bin/external/protobuf/protoc /usr/local/bin && \ bazel --batch build -c opt '//tensorflow:libtensorflow_c.so' && \ install bazel-bin/tensorflow/libtensorflow_c.so /usr/local/lib && \ + ldconfig && \ bazel --batch clean RUN apt-get update