summaryrefslogtreecommitdiff
path: root/azure-pipelines.yml
diff options
context:
space:
mode:
Diffstat (limited to 'azure-pipelines.yml')
-rw-r--r--azure-pipelines.yml98
1 files changed, 76 insertions, 22 deletions
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 7b5334a7..f54e593f 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -1,37 +1,91 @@
jobs:
- - job: 'Test'
- displayName: "Build and test"
+ - job: 'OSx'
+ displayName: "Build and test OSx"
timeoutInMinutes: 0
cancelTimeoutInMinutes: 60
pool:
- vmImage: macOS-10.14
+ vmImage: macOS-latest
variables:
- pythonVersion: '3.6'
+ pythonVersion: '3.7'
cmakeBuildType: Release
- customInstallation: 'brew update && brew install graphviz doxygen boost eigen gmp mpfr tbb cgal'
steps:
- - bash: echo "##vso[task.prependpath]$CONDA/bin"
- displayName: Add conda to PATH
-
- - bash: sudo conda create --yes --quiet --name gudhi_build_env
- displayName: Create Anaconda environment
-
+ # Use a specific Python version
+ - task: UsePythonVersion@0
+ displayName: Use Python $(pythonVersion)
+ inputs:
+ versionSpec: $(pythonVersion)
+ addToPath: true
+ architecture: 'x64'
+
- bash: |
- source activate gudhi_build_env
- sudo conda install --yes --quiet --name gudhi_build_env python=$(pythonVersion)
- python -m pip install --user -r .github/build-requirements.txt
- python -m pip install --user -r .github/test-requirements.txt
- $(customInstallation)
+ git submodule update --init
+ python -m pip install --user -r ext/gudhi-deploy/build-requirements.txt
+ python -m pip install --user -r ext/gudhi-deploy/test-requirements.txt
+ python -m pip uninstall -y pykeops
+ brew update || true
+ brew install ninja graphviz doxygen boost eigen gmp mpfr tbb cgal || true
displayName: 'Install build dependencies'
- bash: |
- source activate gudhi_build_env
- git submodule update --init
mkdir build
cd build
- cmake -DCMAKE_BUILD_TYPE:STRING=$(cmakeBuildType) -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_UTILITIES=ON -DWITH_GUDHI_PYTHON=ON -DPython_ADDITIONAL_VERSIONS=3 ..
- make -j 4
- make doxygen
- ctest -j 4 --output-on-failure -E sphinx # remove sphinx build as it fails
+ cmake -DCMAKE_BUILD_TYPE:STRING=$(cmakeBuildType) -GNinja -DWITH_GUDHI_EXAMPLE=ON -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_UTILITIES=ON -DWITH_GUDHI_PYTHON=ON -DWITH_GUDHI_REMOTE_TEST=ON ..
+ ninja
+ ninja doxygen
+ ctest --output-on-failure
displayName: 'Build, test and documentation generation'
+
+ - job: 'Windows'
+ displayName: "Build and test Windows"
+ timeoutInMinutes: 0
+ cancelTimeoutInMinutes: 60
+ pool:
+ vmImage: windows-latest
+ variables:
+ pythonVersion: '3.7'
+ cmakeVcpkgFlags: -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_TOOLCHAIN_FILE=c:\vcpkg\scripts\buildsystems\vcpkg.cmake
+ cmakeFlags: -DWITH_GUDHI_EXAMPLE=ON -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_UTILITIES=ON -DWITH_GUDHI_PYTHON=OFF
+
+ steps:
+ # Use a specific Python version
+ - task: UsePythonVersion@0
+ displayName: Use Python $(pythonVersion)
+ inputs:
+ versionSpec: $(pythonVersion)
+ addToPath: true
+ architecture: 'x64'
+
+ - script: |
+ git submodule update --init
+ python -m pip install --user -r ext/gudhi-deploy/build-requirements.txt
+ # No PyKeOps on windows, let's workaround this one.
+ for /F "tokens=*" %%A in (ext\gudhi-deploy\test-requirements.txt) do python -m pip install %%A
+ vcpkg install boost-filesystem:x64-windows boost-test:x64-windows boost-program-options:x64-windows tbb:x64-windows eigen3:x64-windows cgal:x64-windows
+ choco install -y ninja --force --force-dependencies
+ displayName: 'Install build dependencies'
+ - script: |
+ call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64
+ IF %errorlevel% NEQ 0 exit /b %errorlevel%
+ mkdir build
+ cd build
+ cmake -DCMAKE_BUILD_TYPE=Release -G "Ninja" -DFORCE_EIGEN_DEFAULT_DENSE_INDEX_TYPE_TO_INT=ON $(cmakeVcpkgFlags) $(cmakeFlags) ..
+ IF %errorlevel% NEQ 0 exit /b %errorlevel%
+ ninja
+ IF %errorlevel% NEQ 0 exit /b %errorlevel%
+ ctest --output-on-failure -C Release -E diff_files
+ IF %errorlevel% NEQ 0 exit /b %errorlevel%
+ cmake -DWITH_GUDHI_PYTHON=ON -DWITH_GUDHI_REMOTE_TEST=ON .
+ IF %errorlevel% NEQ 0 exit /b %errorlevel%
+ cd src\python
+ copy "C:\vcpkg\installed\x64-windows\bin\mpfr*.dll" ".\gudhi\"
+ copy "C:\vcpkg\installed\x64-windows\bin\gmp*.dll" ".\gudhi\"
+ copy "C:\vcpkg\installed\x64-windows\bin\tbb.dll" ".\gudhi\"
+ copy "C:\vcpkg\installed\x64-windows\bin\tbbmalloc.dll" ".\gudhi\"
+ python setup.py build_ext --inplace
+ IF %errorlevel% NEQ 0 exit /b %errorlevel%
+ SET PYTHONPATH=%CD%;%PYTHONPATH%
+ echo %PYTHONPATH%
+ ctest --output-on-failure -C Release
+ IF %errorlevel% NEQ 0 exit /b %errorlevel%
+ displayName: 'Build and test'