Skip to content

Commit

Permalink
Switched from Archiconda to Miniforge
Browse files Browse the repository at this point in the history
Signed-off-by: ossdev07 <ossdev@puresoftware.com>
  • Loading branch information
ossdev07 committed Mar 11, 2020
1 parent c39b1f8 commit 06b46fe
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 93 deletions.
10 changes: 3 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ cache:
directories:
- $HOME/.cache # cython cache
- $HOME/.ccache # compiler cache

env:
global:
# create a github personal access token
Expand All @@ -33,12 +32,9 @@ matrix:
- env:
- JOB="3.7" ENV_FILE="ci/deps/travis-37.yaml" PATTERN="(not slow and not network and not clipboard)"

- dist: trusty
os: linux
sudo: true
arch: arm64
- arch: arm64
env:
- JOB="3.7" ENV_FILE="ci/deps/travis-37-aarch64.yaml" PATTERN="(not slow and not network)"
- JOB="3.7" ENV_FILE="ci/deps/travis-37-arm64.yaml" PATTERN="(not slow and not network and not clipboard)"

- env:
- JOB="3.6, locale" ENV_FILE="ci/deps/travis-36-locale.yaml" PATTERN="((not slow and not network and not clipboard) or (single and db))" LOCALE_OVERRIDE="zh_CN.UTF-8" SQL="1"
Expand Down Expand Up @@ -95,6 +91,6 @@ script:

after_script:
- echo "after_script start"
- source activate pandas-dev && pushd /tmp && if [ `uname -m` = 'aarch64' ];then VAR="python3.7" ; else VAR="python";fi && $VAR -c "import pandas; pandas.show_versions();" && popd
- source activate pandas-dev && pushd /tmp && python -c "import pandas; pandas.show_versions();" && popd
- ci/print_skipped.py
- echo "after_script done"
26 changes: 11 additions & 15 deletions ci/run_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,23 @@ if [ "$COVERAGE" ]; then
COVERAGE="-s --cov=pandas --cov-report=xml:$COVERAGE_FNAME"
fi

# Travis does not have have an X server
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
DISPLAY=DISPLAY=:99.0
if [ `uname -m` = 'aarch64' ]; then
PYTEST_CMD="xvfb-run -e /dev/stdout pytest -m \"$PATTERN\" -s --strict --durations=10 --junitxml=test-data.xml $TEST_ARGS $COVERAGE pandas"
else
PYTEST_CMD="xvfb-run -e /dev/stdout $PYTEST_CMD"
fi
# If no X server is found, we use xvfb to emulate it
if [[ $(uname) == "Linux" && -z $DISPLAY ]]; then
export DISPLAY=":0"
XVFB="xvfb-run "
fi

PYTEST_CMD="${XVFB}pytest -m \"$PATTERN\" -n auto --dist=loadfile -s --strict --durations=10 --junitxml=test-data.xml $TEST_ARGS $COVERAGE pandas"

echo $PYTEST_CMD
if [ `uname -m` = 'aarch64' ]; then
sudo sh -c "$PYTEST_CMD"
if [ "${TRAVIS_CPU_ARCH}" == "arm64" ]; then
PYTEST_CMD="pytest -m \"$PATTERN\" --durations=10 --junitxml=test-data.xml $TEST_ARGS $COVERAGE pandas";
else
sh -c "$PYTEST_CMD"
PYTEST_CMD="${XVFB}pytest -m \"$PATTERN\" -n auto --dist=loadfile -s --strict --durations=10 --junitxml=test-data.xml $TEST_ARGS $COVERAGE pandas"
fi

echo $PYTEST_CMD
sh -c "$PYTEST_CMD"

if [[ "$COVERAGE" && $? == 0 && "$TRAVIS_BRANCH" == "master" ]]; then
echo "uploading coverage"
echo "bash <(curl -s https://codecov.io/bash) -Z -c -F $TYPE -f $COVERAGE_FNAME"
echo "bash <(curl -s https://codecov.io/bash) -Z -c -f $COVERAGE_FNAME"
bash <(curl -s https://codecov.io/bash) -Z -c -f $COVERAGE_FNAME
fi
91 changes: 20 additions & 71 deletions ci/setup_env.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
#!/bin/bash -e

IS_SUDO=""
ARCHICONDA_PYTHON="python3.7"
# edit the locale file if needed
if [[ "$(uname)" == "Linux" && -n "$LC_ALL" ]]; then
echo "Adding locale to the first line of pandas/__init__.py"
Expand All @@ -14,13 +12,8 @@ if [[ "$(uname)" == "Linux" && -n "$LC_ALL" ]]; then
echo
fi

MINICONDA_DIR="$HOME/miniconda3"

if [ `uname -m` = 'aarch64' ]; then
MINICONDA_DIR="$HOME/archiconda3"
IS_SUDO="sudo"
else
MINICONDA_DIR="$HOME/miniconda3"
fi

if [ -d "$MINICONDA_DIR" ]; then
echo
Expand All @@ -43,24 +36,16 @@ else
exit 1
fi

if [ `uname -m` = 'aarch64' ]; then
wget -q "https://github.com/Archiconda/build-tools/releases/download/0.2.3/Archiconda3-0.2.3-Linux-aarch64.sh" -O archiconda.sh
chmod +x archiconda.sh
$IS_SUDO apt-get install python-dev
$IS_SUDO apt-get install python3-pip
$IS_SUDO apt-get install lib$ARCHICONDA_PYTHON-dev
$IS_SUDO apt-get install xvfb
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/local/lib:/usr/local/bin/python
./archiconda.sh -b
echo "chmod MINICONDA_DIR"
$IS_SUDO chmod -R 777 $MINICONDA_DIR
$IS_SUDO cp $MINICONDA_DIR/bin/* /usr/bin/
$IS_SUDO rm /usr/bin/lsb_release
if [ "${TRAVIS_CPU_ARCH}" == "arm64" ]; then
CONDA_URL="https://github.com/conda-forge/miniforge/releases/download/4.8.2-1/Miniforge3-4.8.2-1-Linux-aarch64.sh";
else
wget -q "https://repo.continuum.io/miniconda/Miniconda3-latest-$CONDA_OS.sh" -O miniconda.sh
chmod +x miniconda.sh
./miniconda.sh -b
CONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-$CONDA_OS.sh";
fi
wget -q $CONDA_URL -O miniconda.sh;
chmod +x miniconda.sh

# Installation path is required for ARM64 platform as miniforge script installs in path $HOME/miniforge3.
./miniconda.sh -b -p $MINICONDA_DIR

export PATH=$MINICONDA_DIR/bin:$PATH

Expand All @@ -72,8 +57,8 @@ echo
echo "update conda"
conda config --set ssl_verify false
conda config --set quiet true --set always_yes true --set changeps1 false
$IS_SUDO conda install pip # create conda to create a historical artifact for pip & setuptools
$IS_SUDO conda update -n base conda
conda install pip conda # create conda to create a historical artifact for pip & setuptools
conda update -n base conda

echo "conda info -a"
conda info -a
Expand Down Expand Up @@ -113,18 +98,8 @@ conda list
conda remove --all -q -y -n pandas-dev

echo
if [ `uname -m` = 'aarch64' ]; then
$IS_SUDO chmod -R 777 $MINICONDA_DIR
$IS_SUDO conda install botocore
$IS_SUDO conda install numpy
$IS_SUDO conda install python-dateutil=2.8.0
$IS_SUDO conda install hypothesis
$IS_SUDO conda install pytz
$IS_SUDO chmod -R 777 $MINICONDA_DIR
fi

echo "conda env create -q --file=${ENV_FILE}"
time $IS_SUDO conda env create -q --file="${ENV_FILE}"
time conda env create -q --file="${ENV_FILE}"


if [[ "$BITS32" == "yes" ]]; then
Expand All @@ -138,17 +113,13 @@ source activate pandas-dev
echo
echo "remove any installed pandas package"
echo "w/o removing anything else"
$IS_SUDO conda remove pandas -y --force || true
if [ `uname -m` = 'aarch64' ]; then
$IS_SUDO $ARCHICONDA_PYTHON -m pip uninstall -y pandas || true
else
pip uninstall -y pandas || true
fi
conda remove pandas -y --force || true
pip uninstall -y pandas || true

echo
echo "remove postgres if has been installed with conda"
echo "we use the one from the CI"
$IS_SUDO conda remove postgresql -y --force || true
conda remove postgresql -y --force || true

echo
echo "remove qt"
Expand All @@ -162,10 +133,7 @@ conda list pandas
# Make sure any error below is reported as such

echo "[Build extensions]"
if [ `uname -m` = 'aarch64' ]; then
sudo chmod -R 777 /home/travis/.ccache
fi
python setup.py build_ext -q -i
python setup.py build_ext -q -i -j2

# XXX: Some of our environments end up with old versions of pip (10.x)
# Adding a new enough version of pip to the requirements explodes the
Expand All @@ -174,40 +142,21 @@ python setup.py build_ext -q -i
# - py35_compat
# - py36_32bit
echo "[Updating pip]"
if [ `uname -m` = 'aarch64' ]; then
sudo chmod -R 777 /home/travis/archiconda3/envs/pandas-dev/lib/$ARCHICONDA_PYTHON/site-packages
$IS_SUDO $ARCHICONDA_PYTHON -m pip install pytest-forked
$IS_SUDO $ARCHICONDA_PYTHON -m pip install pytest-xdist
$IS_SUDO $ARCHICONDA_PYTHON -m pip install --no-deps -U pip wheel setuptools
sudo chmod -R 777 $MINICONDA_DIR
else
python -m pip install --no-deps -U pip wheel setuptools
fi
python -m pip install --no-deps -U pip wheel setuptools

echo "[Install pandas]"
if [ `uname -m` = 'aarch64' ]; then
$IS_SUDO chmod -R 777 $MINICONDA_DIR
$IS_SUDO $ARCHICONDA_PYTHON -m pip install numpy
$IS_SUDO $ARCHICONDA_PYTHON -m pip install hypothesis
$IS_SUDO chmod -R 777 /home/travis/.cache/
$IS_SUDO $ARCHICONDA_PYTHON -m pip install --no-build-isolation -e .
else
python -m pip install --no-build-isolation -e .
fi
python -m pip install --no-build-isolation -e .

echo
echo "conda list"
conda list

# Install DB for Linux

if [[ -n ${SQL:0} ]]; then
echo "installing dbs"
if [ `uname -m` = 'aarch64' ]; then
sudo systemctl start mysql
else
psql -c 'create database pandas_nosetest;' -U postgres
fi
mysql -e 'create database pandas_nosetest;'
psql -c 'create database pandas_nosetest;' -U postgres
else
echo "not using dbs on non-linux Travis builds or Azure Pipelines"
fi
Expand Down

0 comments on commit 06b46fe

Please sign in to comment.