From 2d4c8f956382c6f71224293e86fc0d42c6aaaf04 Mon Sep 17 00:00:00 2001 From: Wes McKinney Date: Tue, 18 Oct 2016 08:28:36 -0400 Subject: [PATCH] [pandas 2.0] Add basic Circle CI setup For test automation for now. This won't pass until the libarrow artifacts are updated in conda-forge Closes #41 Author: Wes McKinney Closes #50 from wesm/circle-ci and squashes the following commits: c68b56b [Wes McKinney] Skip Cython extensions for now e2bdb62 [Wes McKinney] Add external project include, google version numbers 5d4a536 [Wes McKinney] conda create fix 5986e72 [Wes McKinney] conda create with env path af44d4d [Wes McKinney] Docker mysteries 1391c87 [Wes McKinney] Tweaks, not sure why failing 3fc6219 [Wes McKinney] Add basic Circle CI setup Change-Id: I2fefc2548d5e60a8e6f9ea39fa57efb9cd0b2e79 --- CMakeLists.txt | 4 +++ circle.yml | 15 ++++++++++ scripts/circleci_build.sh | 58 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 circle.yml create mode 100755 scripts/circleci_build.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d7d7795b..be51d7c96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,10 +13,14 @@ project(pandas) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake_modules") include(CMakeParseArguments) +include(ExternalProject) set(BUILD_SUPPORT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build-support) set(THIRDPARTY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty) +set(GTEST_VERSION "1.7.0") +set(GBENCHMARK_VERSION "1.0.0") + # Allow "make install" to not depend on all targets. # # Must be declared in the top-level CMakeLists.txt. diff --git a/circle.yml b/circle.yml new file mode 100644 index 000000000..3196d37eb --- /dev/null +++ b/circle.yml @@ -0,0 +1,15 @@ +# Configuration initially used from conda-forge/conda-smithy (BSD 3-clause) + +machine: + services: + - docker + +dependencies: + # Note, we used to use the naive caching of docker images, but found that it was quicker + # just to pull each time. #rollondockercaching + override: + - docker pull condaforge/linux-anvil + +test: + override: + - ./scripts/circleci_build.sh diff --git a/scripts/circleci_build.sh b/scripts/circleci_build.sh new file mode 100755 index 000000000..903ab7dc0 --- /dev/null +++ b/scripts/circleci_build.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +# Configuration initially used from conda-forge/conda-smithy (BSD 3-clause) + +ROOT_DIR=$(cd "$(dirname "$0")/.."; pwd;) + +docker info + +config=$(cat < ~/.condarc +# A lock sometimes occurs with incomplete builds. The lock file is stored in build_artefacts. +conda clean --lock + +conda create -y -q -p $ENV_PATH python=3.5 +source activate $ENV_PATH + +conda install --yes --quiet conda-forge-build-setup +source run_conda_forge_build_setup + +conda install -y -q $REQUIREMENTS + +mkdir test-build +cd test-build + +export ARROW_HOME=$ENV_PATH +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ENV_PATH/lib + +cmake -DPANDAS_BUILD_CYTHON=off /root_dir || exit 1 +make -j4 || exit 1 +ctest || exit 1 + +EOF