From f1c875a31ab204a87e0b509c392ac2ce0a193c1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Candice=20Bent=C3=A9jac?= Date: Tue, 10 Dec 2024 17:48:23 +0100 Subject: [PATCH] =?UTF-8?q?[ci]=C2=A0Add=20Rocky9=20to=20the=20Linux-based?= =?UTF-8?q?=20matrix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/continuous-integration.yml | 116 ++++++++++++++++++- 1 file changed, 114 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 2b7cecb328..0856f2b8fd 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -19,10 +19,122 @@ on: - 'docs/**' jobs: - build-linux: + build-ubuntu: runs-on: ubuntu-latest container: - image: alicevision/alicevision-deps:2024.11.25-ubuntu22.04-cuda12.1.0 + image: alicevision/alicevision-deps:2024.12.03-ubuntu22.04-cuda12.1.0 + env: + DEPS_INSTALL_DIR: /opt/AliceVision_install + BUILD_TYPE: Release + CTEST_OUTPUT_ON_FAILURE: 1 + ALICEVISION_ROOT: ${{ github.workspace }}/../AV_install + ALICEVISION_SENSOR_DB: ${{ github.workspace }}/../AV_install/share/aliceVision/cameraSensors.db + ALICEVISION_LENS_PROFILE_INFO: "" + steps: + - uses: actions/checkout@v1 + + - name: Prepare File Tree + run: | + mkdir ./build + mkdir ./build_as_3rdparty + mkdir ./functional_tests + mkdir ../AV_install + + - name: Configure CMake + working-directory: ./build + run: | + cmake .. \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_PREFIX_PATH="${DEPS_INSTALL_DIR}" \ + -DCMAKE_INSTALL_PREFIX="${ALICEVISION_ROOT}" \ + -DTARGET_ARCHITECTURE=core \ + -DALICEVISION_BUILD_TESTS=ON \ + -DALICEVISION_BUILD_SWIG_BINDING=ON \ + -DALICEVISION_USE_OPENCV=ON \ + -DALICEVISION_USE_CUDA=ON \ + -DALICEVISION_USE_CCTAG=ON \ + -DALICEVISION_USE_POPSIFT=ON \ + -DALICEVISION_USE_ALEMBIC=ON \ + -DOpenCV_DIR="${DEPS_INSTALL_DIR}/share/OpenCV" \ + -DALICEVISION_USE_OPENGV=ON \ + -DCeres_DIR="${DEPS_INSTALL_DIR}/share/Ceres" \ + -DAlembic_DIR="${DEPS_INSTALL_DIR}/lib/cmake/Alembic" \ + -DSWIG_DIR="${DEPS_INSTALL_DIR}/share/swig/4.3.0" \ + -DSWIG_EXECUTABLE="${DEPS_INSTALL_DIR}/bin-deps/swig" + + - name: Build + working-directory: ./build + run: | + make -j$(nproc) + + - name: Install + working-directory: ./build + run: | + make install + + - name: Unit Tests + working-directory: ./build + run: | + export LD_LIBRARY_PATH=${ALICEVISION_ROOT}/lib:${ALICEVISION_ROOT}/lib64:${DEPS_INSTALL_DIR}/lib64:${DEPS_INSTALL_DIR}/lib:${LD_LIBRARY_PATH} + make test + + - name: Build As Third Party + working-directory: ./build_as_3rdparty + run: | + cmake ../src/software/utils/aliceVisionAs3rdParty \ + -DBUILD_SHARED_LIBS:BOOL=ON \ + -DCMAKE_PREFIX_PATH:PATH="$PWD/../../AV_install;${DEPS_INSTALL_DIR}" + make -j$(nproc) + + - name: Functional Tests - PanoramaFisheyeHdr Pipeline + working-directory: ./functional_tests + run: | + # clone required repos + git clone --branch develop https://github.com/alicevision/Meshroom.git + git clone --branch main https://github.com/alicevision/dataset_panoramaFisheyeHdr.git + cd Meshroom/ + # select meshroom branch + meshroom_avBranch=$(git ls-remote --heads https://github.com/alicevision/Meshroom.git $GITHUB_HEAD_REF | cut -f 1) + if [ $meshroom_avBranch != "" ]; then git checkout $meshroom_avBranch; echo "Use Meshroom/$GITHUB_HEAD_REF"; fi + export MESHROOM_INSTALL_DIR=$PWD + export PYTHONPATH=$PWD:${ALICEVISION_ROOT}:${PYTHONPATH} + export PATH=$PATH:${ALICEVISION_ROOT}/bin + export LD_LIBRARY_PATH=${ALICEVISION_ROOT}/lib:${ALICEVISION_ROOT}/lib64:${DEPS_INSTALL_DIR}/lib64:${DEPS_INSTALL_DIR}/lib:${LD_LIBRARY_PATH} + mkdir ./outputData + cd bin/ + python3 --version + pip3 --version + pip3 install psutil + echo "ldd aliceVision_cameraInit" + ldd ${ALICEVISION_ROOT}/bin/aliceVision_cameraInit + python3 meshroom_batch -i $PWD/../../dataset_panoramaFisheyeHdr/RAW -p panoramaFisheyeHdr -o $PWD/../outputData + + - name: Functional Tests - SfM Quality Evaluation + working-directory: ./functional_tests + run: | + git clone --branch master https://github.com/alicevision/SfM_quality_evaluation.git + cd SfM_quality_evaluation/ + # checkout a specific commit to ensure repeatability + git checkout 36e3bf2d05c64d1726cb4a0e770923794f203f98 + export PYTHONPATH=${ALICEVISION_ROOT}:${PYTHONPATH} + export LD_LIBRARY_PATH=${ALICEVISION_ROOT}/lib:${ALICEVISION_ROOT}/lib64:${DEPS_INSTALL_DIR}/lib64:${DEPS_INSTALL_DIR}/lib:${LD_LIBRARY_PATH} + echo "ldd aliceVision_cameraInit" + ldd ${ALICEVISION_ROOT}/bin/aliceVision_cameraInit + python3 --version + python3 EvaluationLauncher.py -s ${ALICEVISION_ROOT}/bin -i $PWD/Benchmarking_Camera_Calibration_2008/ -o $PWD/reconstructions/ -r $PWD/results.json -v + + - name: Python Binding - Unit Tests + run: | + export PYTHONPATH=${ALICEVISION_ROOT}:${PYTHONPATH} + export LD_LIBRARY_PATH=${ALICEVISION_ROOT}/lib:${ALICEVISION_ROOT}/lib64:${DEPS_INSTALL_DIR}/lib64:${DEPS_INSTALL_DIR}/lib:${LD_LIBRARY_PATH} + pip3 install pytest + pytest ./pyTests + + build-rocky: + runs-on: ubuntu-latest + container: + image: alicevision/alicevision-deps:2024.12.09-rocky9-cuda12.1.0 env: DEPS_INSTALL_DIR: /opt/AliceVision_install BUILD_TYPE: Release