Skip to content

Commit

Permalink
[pandas 2.0] Add basic Circle CI setup
Browse files Browse the repository at this point in the history
For test automation for now. This won't pass until the libarrow
artifacts are updated in conda-forge    Closes wesm#41

Author: Wes McKinney <[email protected]>

Closes wesm#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
  • Loading branch information
wesm committed Oct 18, 2016
1 parent 8d08247 commit 2d4c8f9
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 0 deletions.
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
15 changes: 15 additions & 0 deletions circle.yml
Original file line number Diff line number Diff line change
@@ -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
58 changes: 58 additions & 0 deletions scripts/circleci_build.sh
Original file line number Diff line number Diff line change
@@ -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
channels:
- conda-forge
- defaults # As we need conda-build
show_channel_urls: true
conda-build:
root-dir: /root_dir/build_artefacts
CONDARC
)

ENV_PATH=/root/pandas-test
REQUIREMENTS="numpy cython cmake boost arrow-cpp pytz python-dateutil"

cat << EOF | docker run -i \
-v ${ROOT_DIR}:/root_dir \
-a stdin -a stdout -a stderr \
condaforge/linux-anvil \
bash || exit $?
export PYTHONUNBUFFERED=1
set -ex
echo "$config" > ~/.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

0 comments on commit 2d4c8f9

Please sign in to comment.