From 34bf483f57d22edcd86f1ed4dc8b34b0d630e943 Mon Sep 17 00:00:00 2001 From: Vincent Rouvreau Date: Wed, 4 Dec 2024 11:03:44 +0100 Subject: [PATCH 1/6] New docker images to fix debug_tests with ubuntu 24. Now works in a virtual env --- .circleci/config.yml | 66 +++++++++++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 25 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9bd2f4fc7..c4c4683b3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -5,7 +5,7 @@ jobs: examples: docker: # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_circleci_image - - image: gudhi/ci_for_gudhi:2024.10.01 + - image: gudhi/ci_for_gudhi:2024.12.01 steps: - checkout - run: @@ -24,7 +24,7 @@ jobs: tests: docker: - - image: gudhi/ci_for_gudhi:2024.10.01 + - image: gudhi/ci_for_gudhi:2024.12.01 steps: - checkout - run: @@ -43,7 +43,7 @@ jobs: debug_tests: docker: - - image: gudhi/ci_for_gudhi:2024.10.01 + - image: gudhi/ci_for_gudhi:2024.12.01 steps: - checkout - run: @@ -62,7 +62,7 @@ jobs: utils: docker: - - image: gudhi/ci_for_gudhi:2024.10.01 + - image: gudhi/ci_for_gudhi:2024.12.01 steps: - checkout - run: @@ -81,7 +81,7 @@ jobs: python: docker: - - image: gudhi/ci_for_gudhi:2024.10.01 + - image: gudhi/ci_for_gudhi:2024.12.01 resource_class: large # Delaunay complex requires about 5 Gb of RAM to compile steps: - checkout @@ -100,13 +100,13 @@ jobs: cd version cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=ON -DWITH_GUDHI_REMOTE_TEST=ON . cd python - python3 setup.py build_ext --inplace + python setup.py build_ext --inplace ctest --output-on-failure make sphinx cp -R sphinx /tmp/sphinx - python3 setup.py install - python3 setup.py clean --all - python3 -B -m pytest test/*.py --cov-report html --cov=gudhi + python setup.py install + python setup.py clean --all + python -B -m pytest test/*.py --cov-report html --cov=gudhi cp -R htmlcov /tmp/htmlcov - store_artifacts: path: /tmp/sphinx @@ -117,7 +117,7 @@ jobs: doxygen: docker: - - image: gudhi/doxygen_for_gudhi:2024.10.01 + - image: gudhi/doxygen_for_gudhi:2024.12.01 steps: - checkout - run: @@ -147,7 +147,7 @@ jobs: bibliography: docker: - - image: gudhi/doxygen_for_gudhi:2024.10.01 + - image: gudhi/doxygen_for_gudhi:2024.12.01 steps: - checkout - run: @@ -170,7 +170,7 @@ jobs: examples_without_cgal_eigen: docker: # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_circleci_image_without_cgal - - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.12.01 steps: - checkout - run: @@ -189,7 +189,7 @@ jobs: tests_without_cgal_eigen: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.12.01 steps: - checkout - run: @@ -208,7 +208,7 @@ jobs: utils_without_cgal_eigen: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.12.01 steps: - checkout - run: @@ -227,7 +227,7 @@ jobs: python_without_cgal_eigen: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.12.01 steps: - checkout - run: @@ -242,14 +242,14 @@ jobs: cd build cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=ON .. cd src/python - python3 setup.py build_ext --inplace + python setup.py build_ext --inplace ctest --output-on-failure ### With all third parties, except CGAL examples_without_cgal: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.12.01 steps: - checkout - run: @@ -260,15 +260,19 @@ jobs: - run: name: Build and test examples without cgal command: | + cd /eigen-3.4.0 + cmake . + make install + cd - mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=/eigen-3.3.9 -DWITH_GUDHI_EXAMPLE=ON -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF .. + cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=ON -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF .. make all ctest --output-on-failure tests_without_cgal: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.12.01 steps: - checkout - run: @@ -279,15 +283,19 @@ jobs: - run: name: Build and test unitary tests without cgal command: | + cd /eigen-3.4.0 + cmake . + make install + cd - mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=/eigen-3.3.9 -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF .. + cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF .. make all ctest --output-on-failure utils_without_cgal: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.12.01 steps: - checkout - run: @@ -298,15 +306,19 @@ jobs: - run: name: Build and test utilities without cgal command: | + cd /eigen-3.4.0 + cmake . + make install + cd - mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=/eigen-3.3.9 -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=ON -DWITH_GUDHI_PYTHON=OFF .. + cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=ON -DWITH_GUDHI_PYTHON=OFF .. make all ctest --output-on-failure python_without_cgal: docker: - - image: gudhi/ci_for_gudhi_wo_cgal:2024.10.01 + - image: gudhi/ci_for_gudhi_wo_cgal:2024.12.01 steps: - checkout - run: @@ -317,11 +329,15 @@ jobs: - run: name: Build and test python module without cgal command: | + cd /eigen-3.4.0 + cmake . + make install + cd - mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DEIGEN3_INCLUDE_DIR=/eigen-3.3.9 -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=ON .. + cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=ON .. cd src/python - python3 setup.py build_ext --inplace + python setup.py build_ext --inplace ctest --output-on-failure workflows: From 7de6aad4eeb7f2dc7c202cc6121c8cff7bbd1bde Mon Sep 17 00:00:00 2001 From: Vincent Rouvreau Date: Wed, 4 Dec 2024 11:38:34 +0100 Subject: [PATCH 2/6] cmake requires build dir --- .circleci/config.yml | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c4c4683b3..fdd5a131f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -260,10 +260,13 @@ jobs: - run: name: Build and test examples without cgal command: | + cur_dir=`pwd` cd /eigen-3.4.0 - cmake . + mkdir build + cd build + cmake .. make install - cd - + cd $cur_dir mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=ON -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF .. @@ -283,10 +286,13 @@ jobs: - run: name: Build and test unitary tests without cgal command: | + cur_dir=`pwd` cd /eigen-3.4.0 - cmake . + mkdir build + cd build + cmake .. make install - cd - + cd $cur_dir mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=ON -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=OFF .. @@ -306,10 +312,13 @@ jobs: - run: name: Build and test utilities without cgal command: | + cur_dir=`pwd` cd /eigen-3.4.0 - cmake . + mkdir build + cd build + cmake .. make install - cd - + cd $cur_dir mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_TEST=OFF -DWITH_GUDHI_UTILITIES=ON -DWITH_GUDHI_PYTHON=OFF .. @@ -329,10 +338,13 @@ jobs: - run: name: Build and test python module without cgal command: | + cur_dir=`pwd` cd /eigen-3.4.0 - cmake . + mkdir build + cd build + cmake .. make install - cd - + cd $cur_dir mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release -DWITH_GUDHI_EXAMPLE=OFF -DWITH_GUDHI_UTILITIES=OFF -DWITH_GUDHI_PYTHON=ON .. From 44e7fef803ccd840f0b6cbc3918685c57d25a97e Mon Sep 17 00:00:00 2001 From: Vincent Rouvreau Date: Tue, 10 Dec 2024 10:15:59 +0100 Subject: [PATCH 3/6] New docker image build should fix libc issues --- .github/workflows/pip-build-linux.yml | 2 +- .github/workflows/pip-packaging-linux.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml index f7c88d34d..3c8b80442 100644 --- a/.github/workflows/pip-build-linux.yml +++ b/.github/workflows/pip-build-linux.yml @@ -11,7 +11,7 @@ jobs: name: build pip wheel runs-on: ubuntu-latest # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip - container: gudhi/pip_for_gudhi:2024.10.02 + container: gudhi/pip_for_gudhi:2024.12.01 steps: # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - uses: actions/checkout@v3 diff --git a/.github/workflows/pip-packaging-linux.yml b/.github/workflows/pip-packaging-linux.yml index a649baa03..18a6024dc 100644 --- a/.github/workflows/pip-packaging-linux.yml +++ b/.github/workflows/pip-packaging-linux.yml @@ -9,7 +9,7 @@ jobs: name: build pip wheel runs-on: ubuntu-latest # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip - container: gudhi/pip_for_gudhi:2024.10.02 + container: gudhi/pip_for_gudhi:2024.12.01 steps: # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - uses: actions/checkout@v3 From 90b10446c9c053a29f9cf7b5449d53800be5f159 Mon Sep 17 00:00:00 2001 From: Vincent Rouvreau Date: Tue, 10 Dec 2024 11:40:35 +0100 Subject: [PATCH 4/6] Try with gudhi/pip_for_gudhi:2024.12.02 based on quay.io/pypa/manylinux_2_28_x86_64 --- .github/workflows/pip-build-linux.yml | 2 +- .github/workflows/pip-packaging-linux.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml index 3c8b80442..f923ff100 100644 --- a/.github/workflows/pip-build-linux.yml +++ b/.github/workflows/pip-build-linux.yml @@ -11,7 +11,7 @@ jobs: name: build pip wheel runs-on: ubuntu-latest # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip - container: gudhi/pip_for_gudhi:2024.12.01 + container: gudhi/pip_for_gudhi:2024.12.02 steps: # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - uses: actions/checkout@v3 diff --git a/.github/workflows/pip-packaging-linux.yml b/.github/workflows/pip-packaging-linux.yml index 18a6024dc..b753887d9 100644 --- a/.github/workflows/pip-packaging-linux.yml +++ b/.github/workflows/pip-packaging-linux.yml @@ -9,7 +9,7 @@ jobs: name: build pip wheel runs-on: ubuntu-latest # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip - container: gudhi/pip_for_gudhi:2024.12.01 + container: gudhi/pip_for_gudhi:2024.12.02 steps: # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - uses: actions/checkout@v3 From e6fd39818bb5ccb1956c251f71d2bce7f792dae2 Mon Sep 17 00:00:00 2001 From: Vincent Rouvreau Date: Tue, 10 Dec 2024 14:50:51 +0100 Subject: [PATCH 5/6] Try to upgrade actions/checkout and actions/upload-artifact to v4 --- .github/workflows/pip-build-linux.yml | 6 ++---- .github/workflows/pip-packaging-linux.yml | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml index f923ff100..ddf6612ef 100644 --- a/.github/workflows/pip-build-linux.yml +++ b/.github/workflows/pip-build-linux.yml @@ -13,8 +13,7 @@ jobs: # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip container: gudhi/pip_for_gudhi:2024.12.02 steps: - # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: true - name: Build wheel for Python 3.9 @@ -37,8 +36,7 @@ jobs: $PYTHON39/bin/python -m pytest -v src/python/test/test_cubical_complex.py $PYTHON39/bin/python -m pytest -v src/python/test/test_rips_complex.py - name: Upload linux python wheel - # Should use actions/upload-artifact@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: linux python wheel path: build_39/src/python/wheelhouse/*.whl diff --git a/.github/workflows/pip-packaging-linux.yml b/.github/workflows/pip-packaging-linux.yml index b753887d9..4bb56e326 100644 --- a/.github/workflows/pip-packaging-linux.yml +++ b/.github/workflows/pip-packaging-linux.yml @@ -11,8 +11,7 @@ jobs: # cf. https://github.com/GUDHI/gudhi-deploy/blob/main/Dockerfile_for_pip container: gudhi/pip_for_gudhi:2024.12.02 steps: - # Should use actions/checkout@v4, but requires node20, not available for quay.io/pypa/manylinux2014_x86_64 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: true # Python 3.8 specific case where NumPy 2.x will not be supported From 87e7088578ca6e957bb637741ab21906250791a2 Mon Sep 17 00:00:00 2001 From: Vincent Rouvreau Date: Tue, 10 Dec 2024 15:55:41 +0100 Subject: [PATCH 6/6] try to remove ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION --- .github/workflows/pip-build-linux.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/pip-build-linux.yml b/.github/workflows/pip-build-linux.yml index ddf6612ef..2bfa253ad 100644 --- a/.github/workflows/pip-build-linux.yml +++ b/.github/workflows/pip-build-linux.yml @@ -2,10 +2,6 @@ name: pip build linux on: [push, pull_request] -# Temporary workaround to allow node16 -env: - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true - jobs: build: name: build pip wheel