azure-pipelines.yml
# Only test the minimum supported Python version for each major version. i.e
# test python=3.7 until summer 2023 and test python=4.0 if released. python=2
# is not supported.
trigger:
branches:
include:
- master
paths:
exclude:
- 'docs/'
- '/.*'
- '/*.rst'
- '/*.md'
- '.travis.yml'
jobs:
# NO CUDA RUNNER AVAILABLE
# - job: CUDA_Linux
# pool:
# name: Default
# demands:
# - CUDA_VERSION
# - Agent.OS -equals Linux
# strategy:
# matrix:
# Python38:
# python.version: '38'
# maxParallel: 4
# steps:
# - script: echo "CUDA version is $(CUDA_VERSION)"
# displayName: Print CUDA version
# - script: |
# conda update --yes --quiet -n base conda
# conda install -n base conda-libmamba-solver
# conda config --set solver libmamba
# displayName: Update conda
# - script: >
# conda env remove --yes
# -n tomopy
# displayName: Remove existing build environment
# - script: >
# conda env create --quiet --force
# -n tomopy
# -f envs/linux-$(python.version).yml
# displayName: Create build environment
# - script: conda list -n tomopy
# displayName: List build environment
# - script: |
# source activate tomopy
# pip install . --no-deps
# cmake -S . -B build -GNinja -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DCMAKE_BUILD_TYPE=Release
# cmake --build build
# cmake --install build
# displayName: Setup and install
# - script: |
# source activate tomopy
# export CUDA_VERSION="$(CUDA_VERSION)"
# pytest --cov tomopy test -v
# displayName: Run tests
- job: Linux
pool:
vmImage: 'ubuntu-latest'
strategy:
matrix:
Python-nomkl:
python.version: 'nomkl'
use.mkl: 'OFF'
use.cuda: 'OFF'
Python-38:
python.version: '38'
use.mkl: 'ON'
use.cuda: 'OFF'
Python-cuda:
python.version: 'cuda'
use.mkl: 'ON'
use.cuda: 'ON'
maxParallel: 4
steps:
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
- script: |
conda env create -n tomopy --quiet -f envs/linux-$(python.version).yml --solver=libmamba
displayName: Create build environment
- script: conda list -n tomopy
displayName: List build environment
- script: |
source activate tomopy
export CMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}:${CONDA_PREFIX}"
export CC=$(which gcc)
export CXX=$(which g++)
echo "C compiler is ${CC}"
echo "C++ compiler is ${CXX}"
pip install . --no-deps
cmake -S . -B build -GNinja -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DCMAKE_BUILD_TYPE=Release -DTOMOPY_USE_MKL:BOOL=$(use.mkl) -DTOMOPY_USE_CUDA:BOOL=$(use.cuda)
cmake --build build -v
cmake --install build -v
displayName: Setup and install
- script: |
source activate tomopy
pytest --cov=tomopy test -v
displayName: Run tests
- job: macOS
pool:
vmImage: 'macOS-latest'
strategy:
matrix:
Python-38:
python.version: '38'
maxParallel: 4
steps:
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH
- bash: sudo chown -R $USER $CONDA
displayName: Take ownership of conda installation
- script: |
conda env create -n tomopy --quiet -f envs/osx-$(python.version).yml --solver=libmamba
displayName: Create build environment
- script: conda list -n tomopy
displayName: List build environment
- script: |
source activate tomopy
export CMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}:${CONDA_PREFIX}"
export CC=$(which clang)
export CXX=$(which clang++)
echo "C compiler is ${CC}"
echo "C++ compiler is ${CXX}"
pip install . --no-deps
cmake -S . -B build -GNinja -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build
displayName: Setup and install
- script: |
source activate tomopy
pytest --cov=tomopy test -v
displayName: Run tests
- job: Windows
pool:
vmImage: 'windows-latest'
strategy:
matrix:
Python-38:
python.version: '38'
maxParallel: 4
steps:
- powershell: Write-Host "##vso[task.prependpath]$env:CONDA\Scripts"
displayName: Add conda to PATH
- script: |
conda env create -n tomopy --quiet -f envs/win-ci.yml --solver=libmamba
displayName: Create build environment
- script: conda list -n tomopy
displayName: List build environment
- script: |
call activate tomopy
pip install . --no-deps
cmake -S . -B build -GNinja -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library -DTOMOPY_USE_OPENCV=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build
displayName: Setup and install
- script: |
call activate tomopy
pytest --cov=tomopy test -v
displayName: Run tests