diff --git a/ci_build/Dockerfile b/ci_build/Dockerfile new file mode 100644 index 0000000..bc695d4 --- /dev/null +++ b/ci_build/Dockerfile @@ -0,0 +1,36 @@ +# Image for launching TensorFlow Haskell tests. +FROM tensorflow/tensorflow:nightly-devel +# gcr.io/tensorflow/tensorflow:latest-devel +MAINTAINER TensorFlow authors + +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 + +RUN apt-get update + +RUN apt-get install -y \ + # Avoids /usr/bin/ld: cannot find -ltinfo + libncurses5-dev \ + # Makes stack viable in the container + libgmp-dev \ + libcurl3-dev \ + stack + +# The build context directory is the top of the tensorflow-haskell +# tree. +ADD . /tfhs + +WORKDIR /tfhs + +# Installs protoc and the libraries. +RUN \ + cd third_party/tensorflow && \ + tensorflow/tools/ci_build/builds/configured CPU && \ + bazel --batch build -c opt '@protobuf//:protoc' && \ + 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 && \ + bazel --batch clean + +RUN 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