summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Rouvreau <10407034+VincentRouvreau@users.noreply.github.com>2022-01-21 09:50:47 +0100
committerGitHub <noreply@github.com>2022-01-21 09:50:47 +0100
commita7ec48c56b16c1197cfad83706e643b07d2d6b56 (patch)
treedf5165c3cf0034dadeb7fb31c9fb75a01f072510
parentde5aa9c891ef13c9fc2b2635bcd27ab873b0057b (diff)
Experiment azure ci instead of appveyor for windows (#574)
* Remove appveyor build Windows builds and tests under azure: * Add windows build in azure yaml file and rename pipelines * Remove '-j 4' as not used * Separate c++ and python compilation (tests are easier to be launched under src/python) * Explain the change in tests_strategy
-rw-r--r--.appveyor.yml80
-rw-r--r--.github/for_maintainers/tests_strategy.md10
-rw-r--r--azure-pipelines.yml75
3 files changed, 66 insertions, 99 deletions
diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 33458a28..00000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-image:
- - Visual Studio 2019
-
-build:
- parallel: true
- verbosity: detailed
-
-configuration:
- - Release
-
-environment:
- # update the vcpkg cache even if build fails
- # APPVEYOR_SAVE_CACHE_ON_ERROR: true
- PYTHON: "C:\\Python39-x64"
- PYTHONPATH: "C:\\Python39-x64\\lib\\site-packages"
- CMAKE_VCPKG_FLAGS: -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_TOOLCHAIN_FILE=c:\Tools\vcpkg\scripts\buildsystems\vcpkg.cmake
-
- matrix:
- - target: Examples
- CMAKE_FLAGS: -DWITH_GUDHI_EXAMPLE=ON -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF
-
- - target: UnitaryTests
- CMAKE_FLAGS: -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF
-
- - target: Utilities
- CMAKE_FLAGS: -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=ON -DWITH_GUDHI_PYTHON=OFF
-
- - target: Python
- CMAKE_FLAGS: -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=ON
-
-
-#cache:
-# - c:\Tools\vcpkg\installed
-# - '%LOCALAPPDATA%\pip\Cache'
-
-init:
- - echo %target%
-
-install:
- - git submodule update --init
- - vcpkg update
- - vcpkg remove --outdated
- - vcpkg upgrade --no-dry-run
- - vcpkg install boost-filesystem:x64-windows boost-test:x64-windows boost-program-options:x64-windows tbb:x64-windows eigen3:x64-windows cgal:x64-windows
- - dir "C:\Tools\vcpkg\installed\x64-windows\bin\"
- - vcpkg integrate install
- - CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
- - "set PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- - python --version
- - pip --version
- - python -m pip install --upgrade pip
- - python -m pip install --upgrade setuptools
- - python -m pip install -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
- - dir "c:\python39-x64\lib\site-packages"
- - dir "%LOCALAPPDATA%\pip\Cache"
- - python -c "from scipy import spatial; print(spatial.cKDTree)"
-
-build_script:
- - mkdir build
- - cd build
- - cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release %CMAKE_FLAGS% %CMAKE_VCPKG_FLAGS% ..
- - if [%target%]==[Python] (
- cd src\python &
- dir . &
- type setup.py &
- copy "C:\Tools\vcpkg\installed\x64-windows\bin\mpfr-6.dll" ".\gudhi\" &
- copy "C:\Tools\vcpkg\installed\x64-windows\bin\gmp.dll" ".\gudhi\" &
- copy "C:\Tools\vcpkg\installed\x64-windows\bin\tbb.dll" ".\gudhi\" &
- copy "C:\Tools\vcpkg\installed\x64-windows\bin\tbbmalloc.dll" ".\gudhi\" &
- python setup.py build_ext --inplace &
- SET PYTHONPATH=%CD%;%PYTHONPATH% &
- echo %PYTHONPATH% &
- ctest -j 1 --output-on-failure -C Release
- ) else (
- dir . &
- MSBuild GUDHIdev.sln /m /p:Configuration=Release /p:Platform=x64 &
- ctest -j 1 --output-on-failure -C Release -E diff_files
- )
diff --git a/.github/for_maintainers/tests_strategy.md b/.github/for_maintainers/tests_strategy.md
index 9c181740..c25acf9b 100644
--- a/.github/for_maintainers/tests_strategy.md
+++ b/.github/for_maintainers/tests_strategy.md
@@ -39,22 +39,24 @@ docker push gudhi/ci_for_gudhi_wo_cgal:latest
### Windows
-The compilations has been seperated by categories to be parallelized, but I don't know why builds are not run in parallel:
+The compilations are not parallelized, as installation time (about 30 minutes) is too much compare to
+build and tests timings (about 30 minutes). Builds and tests include:
* examples (C++)
* tests (C++)
* utils (C++)
* python
-Doxygen (C++) is not tested.
-(cf. `.appveyor.yml`)
+Doxygen (C++) is not generated.
+(cf. `azure-pipelines.yml`)
C++ third parties installation are done thanks to [vcpkg](https://github.com/microsoft/vcpkg/).
In case of installation issue, check in [vcpkg issues](https://github.com/microsoft/vcpkg/issues).
### OSx
-The compilations has been seperated by categories to be parallelized:
+The compilations are not parallelized, but they should, as installation time (about 4 minutes) is
+negligeable compare to build and tests timings (about 30 minutes). Builds and tests include:
* examples (C++)
* tests (C++)
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index a96323fd..21664244 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -1,26 +1,26 @@
jobs:
- - job: 'Test'
- displayName: "Build and test"
+ - job: 'OSx'
+ displayName: "Build and test OSx"
timeoutInMinutes: 0
cancelTimeoutInMinutes: 60
pool:
vmImage: macOS-10.15
variables:
- pythonVersion: '3.6'
+ pythonVersion: '3.7'
cmakeBuildType: Release
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
git submodule update --init
- sudo conda install --yes --quiet --name gudhi_build_env python=$(pythonVersion)
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
@@ -28,11 +28,56 @@ jobs:
brew install graphviz doxygen boost eigen gmp mpfr tbb cgal || true
displayName: 'Install build dependencies'
- bash: |
- source activate gudhi_build_env
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
+ cmake -DCMAKE_BUILD_TYPE:STRING=$(cmakeBuildType) -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_UTILITIES=ON -DWITH_GUDHI_PYTHON=ON ..
+ make
make doxygen
- ctest -j 4 --output-on-failure # -E sphinx remove sphinx build as it fails
+ 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
+ displayName: 'Install build dependencies'
+ - script: |
+ call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64
+ mkdir build
+ cd build
+ cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release $(cmakeVcpkgFlags) $(cmakeFlags) ..
+ MSBuild GUDHIdev.sln /m /p:Configuration=Release /p:Platform=x64
+ ctest --output-on-failure -C Release -E diff_files
+ cmake -DWITH_GUDHI_PYTHON=ON .
+ cd src\python
+ copy "C:\vcpkg\installed\x64-windows\bin\mpfr-6.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
+ SET PYTHONPATH=%CD%;%PYTHONPATH%
+ echo %PYTHONPATH%
+ ctest --output-on-failure -C Release
+ displayName: 'Build and test'