Skip to content

Commit 53da160

Browse files
committed
Use Mamba in Azure Pipelines
Also clean up ci/setup_env.sh
1 parent afc06e7 commit 53da160

File tree

3 files changed

+62
-63
lines changed

3 files changed

+62
-63
lines changed

ci/azure/posix.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,13 @@ jobs:
2929
displayName: 'Setup environment and build pandas'
3030

3131
- script: |
32-
source activate pandas-dev
33-
ci/run_tests.sh
32+
conda run -n pandas-dev --no-capture-output ci/run_tests.sh
3433
displayName: 'Test'
3534
36-
- script: source activate pandas-dev && pushd /tmp && python -c "import pandas; pandas.show_versions();" && popd
35+
- script: |
36+
pushd /tmp
37+
conda run -n pandas-dev python -c "import pandas; pandas.show_versions()"
38+
popd
3739
displayName: 'Build versions'
3840
3941
- task: PublishTestResults@2

ci/azure/windows.yml

+8-4
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,20 @@ jobs:
2626
Write-Host "##vso[task.prependpath]$env:CONDA\Scripts"
2727
Write-Host "##vso[task.prependpath]$HOME/miniconda3/bin"
2828
displayName: 'Add conda to PATH'
29-
- script: conda update -q -n base conda
30-
displayName: 'Update conda'
29+
- bash: conda install -yv -c conda-forge -n base 'mamba<0.21'
30+
displayName: 'Install mamba'
3131

3232
- bash: |
33-
conda env create -q --file ci\\deps\\actions-$(CONDA_PY).yaml
33+
# See https://github.com/mamba-org/mamba/issues/1370
34+
# See https://github.com/mamba-org/mamba/issues/633
35+
C:\\Miniconda\\condabin\\mamba.bat create -n pandas-dev
36+
C:\\Miniconda\\condabin\\mamba.bat env update -n pandas-dev --file ci\\deps\\actions-$(CONDA_PY).yaml
37+
C:\\Miniconda\\condabin\\mamba.bat list -n pandas-dev
3438
displayName: 'Create anaconda environment'
3539
- bash: |
3640
source activate pandas-dev
3741
conda list
38-
python setup.py build_ext -q -j 4
42+
python setup.py build_ext -q -j 2
3943
python -m pip install --no-build-isolation -e .
4044
displayName: 'Build'
4145
- bash: |

ci/setup_env.sh

+49-56
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,34 @@ if [[ "$(uname)" == "Linux" && -n "$LC_ALL" ]]; then
1313
fi
1414

1515

16-
echo "Install Miniconda"
17-
DEFAULT_CONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest"
18-
if [[ "$(uname -m)" == 'aarch64' ]]; then
19-
CONDA_URL="https://github.com/conda-forge/miniforge/releases/download/4.10.1-4/Miniforge3-4.10.1-4-Linux-aarch64.sh"
20-
elif [[ "$(uname)" == 'Linux' ]]; then
21-
if [[ "$BITS32" == "yes" ]]; then
22-
CONDA_URL="$DEFAULT_CONDA_URL-Linux-x86.sh"
16+
MINICONDA_DIR=/usr/local/miniconda
17+
if [ -e $MINICONDA_DIR ] && [ "$BITS32" != yes ]; then
18+
echo "Found Miniconda installation at $MINICONDA_DIR"
19+
else
20+
echo "Install Miniconda"
21+
DEFAULT_CONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest"
22+
if [[ "$(uname -m)" == 'aarch64' ]]; then
23+
CONDA_URL="https://github.com/conda-forge/miniforge/releases/download/4.10.1-4/Miniforge3-4.10.1-4-Linux-aarch64.sh"
24+
elif [[ "$(uname)" == 'Linux' ]]; then
25+
if [[ "$BITS32" == "yes" ]]; then
26+
CONDA_URL="$DEFAULT_CONDA_URL-Linux-x86.sh"
27+
else
28+
CONDA_URL="$DEFAULT_CONDA_URL-Linux-x86_64.sh"
29+
fi
30+
elif [[ "$(uname)" == 'Darwin' ]]; then
31+
CONDA_URL="$DEFAULT_CONDA_URL-MacOSX-x86_64.sh"
2332
else
24-
CONDA_URL="$DEFAULT_CONDA_URL-Linux-x86_64.sh"
33+
echo "OS $(uname) not supported"
34+
exit 1
2535
fi
26-
elif [[ "$(uname)" == 'Darwin' ]]; then
27-
CONDA_URL="$DEFAULT_CONDA_URL-MacOSX-x86_64.sh"
28-
else
29-
echo "OS $(uname) not supported"
30-
exit 1
31-
fi
32-
echo "Downloading $CONDA_URL"
33-
wget -q $CONDA_URL -O miniconda.sh
34-
chmod +x miniconda.sh
36+
echo "Downloading $CONDA_URL"
37+
wget -q $CONDA_URL -O miniconda.sh
38+
chmod +x miniconda.sh
3539

36-
MINICONDA_DIR="$HOME/miniconda3"
37-
rm -rf $MINICONDA_DIR
38-
./miniconda.sh -b -p $MINICONDA_DIR
40+
MINICONDA_DIR="$HOME/miniconda3"
41+
rm -rf $MINICONDA_DIR
42+
./miniconda.sh -b -p $MINICONDA_DIR
43+
fi
3944
export PATH=$MINICONDA_DIR/bin:$PATH
4045

4146
echo
@@ -46,25 +51,25 @@ echo
4651
echo "update conda"
4752
conda config --set ssl_verify false
4853
conda config --set quiet true --set always_yes true --set changeps1 false
49-
conda install pip conda # create conda to create a historical artifact for pip & setuptools
50-
conda update -n base conda
51-
conda install -y -c conda-forge mamba
54+
# TODO: GH#44980 https://github.com/pypa/setuptools/issues/2941
55+
conda install -y -c conda-forge -n base mamba pip 'setuptools<60'
5256

5357
echo "conda info -a"
5458
conda info -a
5559

56-
echo "source deactivate"
57-
source deactivate
58-
5960
echo "conda list (root environment)"
6061
conda list
6162

63+
echo
6264
# Clean up any left-over from a previous build
63-
conda remove --all -q -y -n pandas-dev
65+
mamba env remove -n pandas-dev
66+
echo "mamba env update --file=${ENV_FILE}"
67+
# See https://github.com/mamba-org/mamba/issues/633
68+
mamba create -q -n pandas-dev
69+
time mamba env update -n pandas-dev --file="${ENV_FILE}"
6470

65-
echo
66-
echo "mamba env create -q --file=${ENV_FILE}"
67-
time mamba env create -q --file="${ENV_FILE}"
71+
echo "conda list -n pandas-dev"
72+
conda list -n pandas-dev
6873

6974

7075
if [[ "$BITS32" == "yes" ]]; then
@@ -81,35 +86,23 @@ source activate pandas-dev
8186
# downstream CI jobs that may also build pandas from source.
8287
export PANDAS_CI=1
8388

84-
echo
85-
echo "remove any installed pandas package"
86-
echo "w/o removing anything else"
87-
conda remove pandas -y --force || true
88-
pip uninstall -y pandas || true
89-
90-
echo
91-
echo "remove qt"
92-
echo "causes problems with the clipboard, we use xsel for that"
93-
conda remove qt -y --force || true
94-
95-
echo
96-
echo "conda list pandas"
97-
conda list pandas
98-
99-
# Make sure any error below is reported as such
89+
if pip list | grep -q ^pandas; then
90+
echo
91+
echo "remove any installed pandas package w/o removing anything else"
92+
pip uninstall -y pandas || true
93+
fi
10094

101-
echo "[Build extensions]"
102-
python setup.py build_ext -q -j2
95+
if [ "$(conda list -f qt --json)" != [] ]; then
96+
echo
97+
echo "remove qt"
98+
echo "causes problems with the clipboard, we use xsel for that"
99+
conda remove qt -y --force || true
100+
fi
103101

104-
echo "[Updating pip]"
105-
# TODO: GH#44980 https://github.com/pypa/setuptools/issues/2941
106-
python -m pip install --no-deps -U pip wheel "setuptools<60.0.0"
102+
echo "Build extensions"
103+
python setup.py build_ext -q -j3
107104

108-
echo "[Install pandas]"
105+
echo "Install pandas"
109106
python -m pip install --no-build-isolation -e .
110107

111-
echo
112-
echo "conda list"
113-
conda list
114-
115108
echo "done"

0 commit comments

Comments
 (0)