You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by we...@apache.org on 2016/05/18 17:15:27 UTC

arrow git commit: ARROW-204: Add Travis CI builds that post conda artifacts for Linux and OS X

Repository: arrow
Updated Branches:
  refs/heads/master 9c59158b4 -> 978de1a94


ARROW-204: Add Travis CI builds that post conda artifacts for Linux and OS X

I tested this on my fork of Arrow, but ultimately we'll see if it works when the commit hits master. I've arranged so that packaging issues won't fail the build.

Author: Wes McKinney <we...@apache.org>

Closes #79 from wesm/ARROW-204 and squashes the following commits:

afd0582 [Wes McKinney] Change encrypted token to apache/arrow, only upload on commits to master
58955e5 [Wes McKinney] Draft of automated conda builds for libarrow, pyarrow. Remove unneeded thrift-cpp build dependency


Project: http://git-wip-us.apache.org/repos/asf/arrow/repo
Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/978de1a9
Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/978de1a9
Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/978de1a9

Branch: refs/heads/master
Commit: 978de1a94dd451b3142aca0eb95ce410064a2330
Parents: 9c59158
Author: Wes McKinney <we...@apache.org>
Authored: Wed May 18 10:15:14 2016 -0700
Committer: Wes McKinney <we...@apache.org>
Committed: Wed May 18 10:15:14 2016 -0700

----------------------------------------------------------------------
 .travis.yml                | 27 ++++++++++++++++++++-
 ci/travis_conda_build.sh   | 53 +++++++++++++++++++++++++++++++++++++++++
 cpp/conda.recipe/build.sh  | 15 +++++++++++-
 cpp/conda.recipe/meta.yaml |  5 ++--
 4 files changed, 95 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/arrow/blob/978de1a9/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index a0138a7..646f80f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,5 @@
 sudo: required
-dist: precise 
+dist: precise
 addons:
   apt:
     sources:
@@ -18,6 +18,9 @@ addons:
     - valgrind
 
 matrix:
+  fast_finish: true
+  allow_failures:
+  - env: ARROW_TEST_GROUP=packaging
   include:
   - compiler: gcc
     language: cpp
@@ -39,6 +42,24 @@ matrix:
     script:
     - $TRAVIS_BUILD_DIR/ci/travis_script_cpp.sh
     - $TRAVIS_BUILD_DIR/ci/travis_script_python.sh
+  - compiler: gcc
+    env: ARROW_TEST_GROUP=packaging
+    os: linux
+    before_script:
+    - export CC="gcc-4.9"
+    - export CXX="g++-4.9"
+    script:
+    - $TRAVIS_BUILD_DIR/ci/travis_conda_build.sh
+  - os: osx
+    env: ARROW_TEST_GROUP=packaging
+    language: objective-c
+    osx_image: xcode6.4
+    compiler: clang
+    addons:
+    before_script:
+    before_install:
+    script:
+    - $TRAVIS_BUILD_DIR/ci/travis_conda_build.sh
 
 before_install:
 - ulimit -c unlimited -S
@@ -51,3 +72,7 @@ after_script:
 after_failure:
 - COREFILE=$(find . -maxdepth 2 -name "core*" | head -n 1)
 - if [[ -f "$COREFILE" ]]; then gdb -c "$COREFILE" example -ex "thread apply all bt" -ex "set pagination 0" -batch; fi
+
+env:
+  global:
+  - secure: "GcrPtsKUCgNY7HKYjWlHQo8SiFrShDvdZSU8t1m1FJrE+UfK0Dgh9zXmAausM8GmhqSwkF0q4UbLQf2uCnSITWKeEPAL8Mo9eu4ib+ikJx/b3Sk81frgW5ADoHfW1Eyqd8xJNIMwMegJOtRLSDqiXh1CvMlKnY8PyTOGM2DgN9ona/v6p9OFH9Qs0JhBRVXAn0S4ztjumck8E56+01hqRfxbZ88pTfpKghBxYp9PJaMjtGdomjVWlqPaWaWJj+KptT8inV9NK+TVYKx0dXWD+S1Vgr1PytQnLdILOYV23gsOBYqn33ByF/yADl4m3hUjU/qeT0Fi7aWxmVpj+oTJISOSH5N8nIsuNH8mQk2ZzzXHfV7btFvP+cOPRczadoKkT6D6cHA8nQ7b0dphC6bl6SAeSfc/cbhRT+fYnIjg8jFXC8jlyWBr7LR6GXVpc0bND7i300ITo0FuRJhy2OxqPtGo3dKLE7eAcv78tuO0OYJ/kol1PEqFdFkbYbNVbg/cFpbGqiCXDsOtPDbAGBv69YnXdVowSxxs8cRGjSkDydv6ZSytb/Zd4lH/KAomcFNk8adx12O1Lk4sbmVav1cGig5P6OcQKS0jC5IiRb4THcQzVzAkXXbaafKm5sru/NoYxhzmkyhkOc11nTYHKVng+XKWzLCNn7pTTSLitp5+xa4="

http://git-wip-us.apache.org/repos/asf/arrow/blob/978de1a9/ci/travis_conda_build.sh
----------------------------------------------------------------------
diff --git a/ci/travis_conda_build.sh b/ci/travis_conda_build.sh
new file mode 100755
index 0000000..afa531d
--- /dev/null
+++ b/ci/travis_conda_build.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [ $TRAVIS_OS_NAME == "linux" ]; then
+  MINICONDA_URL="https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh"
+else
+  MINICONDA_URL="https://repo.continuum.io/miniconda/Miniconda-latest-MacOSX-x86_64.sh"
+fi
+
+wget -O miniconda.sh $MINICONDA_URL
+MINICONDA=$TRAVIS_BUILD_DIR/miniconda
+bash miniconda.sh -b -p $MINICONDA
+export PATH="$MINICONDA/bin:$PATH"
+conda update -y -q conda
+conda info -a
+
+conda config --set show_channel_urls yes
+conda config --add channels conda-forge
+conda config --add channels apache
+
+conda install --yes conda-build jinja2 anaconda-client
+
+# faster builds, please
+conda install -y nomkl
+
+# Build libarrow
+
+cd $TRAVIS_BUILD_DIR/cpp
+
+conda build conda.recipe --channel apache/channel/dev
+CONDA_PACKAGE=`conda build --output conda.recipe | grep bz2`
+
+if [ $TRAVIS_BRANCH == "master" ] && [ $TRAVIS_PULL_REQUEST == "false" ]; then
+  anaconda --token $ANACONDA_TOKEN upload $CONDA_PACKAGE --user apache --channel dev;
+fi
+
+# Build pyarrow
+
+cd $TRAVIS_BUILD_DIR/python
+
+build_for_python_version() {
+  PY_VERSION=$1
+  conda build conda.recipe --python $PY_VERSION --channel apache/channel/dev
+  CONDA_PACKAGE=`conda build --python $PY_VERSION --output conda.recipe | grep bz2`
+
+  if [ $TRAVIS_BRANCH == "master" ] && [ $TRAVIS_PULL_REQUEST == "false" ]; then
+	anaconda --token $ANACONDA_TOKEN upload $CONDA_PACKAGE --user apache --channel dev;
+  fi
+}
+
+build_for_python_version 2.7
+build_for_python_version 3.5

http://git-wip-us.apache.org/repos/asf/arrow/blob/978de1a9/cpp/conda.recipe/build.sh
----------------------------------------------------------------------
diff --git a/cpp/conda.recipe/build.sh b/cpp/conda.recipe/build.sh
index ac1f9c8..b10dd03 100644
--- a/cpp/conda.recipe/build.sh
+++ b/cpp/conda.recipe/build.sh
@@ -9,6 +9,19 @@ cd $RECIPE_DIR
 export FLATBUFFERS_HOME=$PREFIX
 export PARQUET_HOME=$PREFIX
 
+if [ "$(uname)" == "Darwin" ]; then
+  # C++11 finagling for Mac OSX
+  export CC=clang
+  export CXX=clang++
+  export MACOSX_VERSION_MIN="10.7"
+  CXXFLAGS="${CXXFLAGS} -mmacosx-version-min=${MACOSX_VERSION_MIN}"
+  CXXFLAGS="${CXXFLAGS} -stdlib=libc++ -std=c++11"
+  export LDFLAGS="${LDFLAGS} -mmacosx-version-min=${MACOSX_VERSION_MIN}"
+  export LDFLAGS="${LDFLAGS} -stdlib=libc++ -std=c++11"
+  export LINKFLAGS="${LDFLAGS}"
+  export MACOSX_DEPLOYMENT_TARGET=10.7
+fi
+
 cd ..
 
 rm -rf conda-build
@@ -33,7 +46,7 @@ elif [ `uname` == Darwin ]; then
 fi
 
 cmake \
-    -DCMAKE_BUILD_TYPE=debug \
+    -DCMAKE_BUILD_TYPE=release \
     -DCMAKE_INSTALL_PREFIX=$PREFIX \
     -DCMAKE_SHARED_LINKER_FLAGS=$SHARED_LINKER_FLAGS \
     -DARROW_IPC=on \

http://git-wip-us.apache.org/repos/asf/arrow/blob/978de1a9/cpp/conda.recipe/meta.yaml
----------------------------------------------------------------------
diff --git a/cpp/conda.recipe/meta.yaml b/cpp/conda.recipe/meta.yaml
index 2e834d5..75f3a8b 100644
--- a/cpp/conda.recipe/meta.yaml
+++ b/cpp/conda.recipe/meta.yaml
@@ -15,15 +15,14 @@ requirements:
     - cmake
     - flatbuffers
     - parquet-cpp
-    - thrift-cpp
 
   run:
     - parquet-cpp
 
 test:
   commands:
-    - test -f $PREFIX/lib/libarrow.so
-    - test -f $PREFIX/lib/libarrow_parquet.so
+    - test -f $PREFIX/lib/libarrow.so            # [linux]
+    - test -f $PREFIX/lib/libarrow_parquet.so    # [linux]
     - test -f $PREFIX/include/arrow/api.h
 
 about: