From d050ec26549390dd561c2ae0fa2f1c2fc6adfb69 Mon Sep 17 00:00:00 2001 From: Greg Steuck Date: Thu, 27 Oct 2016 18:57:37 -0700 Subject: [PATCH] Semi-functional continuous integration test. - Uses docker to put everything together. - stack is running on "raw" system, similar to MacOS build. - Still not finding libtensorflow_c.so in tensorflow-core-ops setup. --- ci_build/Dockerfile | 36 ++++++++++++++++++++++++++++++++++ ci_build/outer_launch_tests.sh | 11 +++++++++++ 2 files changed, 47 insertions(+) create mode 100644 ci_build/Dockerfile create mode 100755 ci_build/outer_launch_tests.sh 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