Skip to content

Update vmImage for cI to solve space issue. #32

Update vmImage for cI to solve space issue.

Update vmImage for cI to solve space issue. #32

Workflow file for this run

name: build-pcl
on: [push, pull_request]
permissions:
packages: write
jobs:
gcc-build:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
include:
- name: ubuntu20.04-gcc
image: pointcloudlibrary/env:20.04
cc: gcc
cxx: g++
build_gpu: ON
cmake_args: '-DPCL_WARNINGS_ARE_ERRORS=ON -DCMAKE_CXX_STANDARD=14 -DCMAKE_CUDA_STANDARD=14'
- name: ubuntu24.04-gcc
image: pointcloudlibrary/env:24.04
cc: gcc
cxx: g++
build_gpu: ON
cmake_args: '-DCMAKE_CXX_STANDARD=17 -DCMAKE_CUDA_STANDARD=17'
container: ${{ matrix.image }}
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
BUILD_GPU: ${{ matrix.build_gpu }}
CMAKE_CXX_FLAGS: '-Wall -Wextra -Wnoexcept-type'
DISPLAY: ':99.0'
steps:
- uses: actions/checkout@v4
- name: Start Xvfb (${{ matrix.name }})
run: (nohup Xvfb :99 -screen 0 1280x1024x24 -nolisten tcp -nolisten unix &)
- name: Configure (${{ matrix.name }})
run: |
cmake -B build -S . ${{ matrix.cmake_args }} \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
-DPCL_ONLY_CORE_POINT_TYPES=ON \
-DPCL_DISABLE_GPU_TESTS=ON \
-DBUILD_simulation=ON \
-DBUILD_surface_on_nurbs=ON \
-DBUILD_global_tests=ON \
-DBUILD_benchmarks=ON \
-DBUILD_examples=ON \
-DBUILD_tools=ON \
-DBUILD_apps=ON \
-DBUILD_apps_3d_rec_framework=ON \
-DBUILD_apps_cloud_composer=ON \
-DBUILD_apps_in_hand_scanner=ON \
-DBUILD_apps_modeler=ON \
-DBUILD_apps_point_cloud_editor=ON \
-DBUILD_CUDA=$BUILD_GPU \
-DBUILD_GPU=$BUILD_GPU \
-DBUILD_cuda_io=$BUILD_GPU \
-DBUILD_gpu_tracking=$BUILD_GPU \
-DBUILD_gpu_surface=$BUILD_GPU
cmake -B build -S .
- name: Build (${{ matrix.name }})
run: cmake --build build -- -j$(nproc)
- name: Build tests target (${{ matrix.name }})
run: cmake --build build --target tests -- -j$(nproc)
- name: Run ctest (${{ matrix.name }})
run: ctest --test-dir build --output-on-failure -j$(nproc)
macos-clang:
runs-on: ${{ matrix.vmimage }}
strategy:
fail-fast: false
matrix:
include:
- vmimage: macOS-14
osx_version: '14'
- vmimage: macOS-15
osx_version: '15'
env:
CMAKE_CXX_FLAGS: '-Wall -Wextra -Wabi -Werror -Wno-error=deprecated-declarations'
GOOGLE_TEST_DIR: '${{ github.workspace }}/../googletest'
OSX_VERSION: ${{ matrix.osx_version }}
steps:
- uses: actions/checkout@v4
- name: Install Dependencies (macOS ${{ matrix.osx_version }})
run: |
brew update
# Minimal dependencies only
brew install cmake pkg-config boost eigen flann nanoflann libusb qhull zlib cjson
brew install cmake pkg-config boost eigen flann nanoflann glew libusb qhull vtk freeglut qt@5 libpcap libomp suite-sparse zlib google-benchmark cjson
git clone https://github.com/abseil/googletest.git "$GOOGLE_TEST_DIR"
cd "$GOOGLE_TEST_DIR" && git checkout release-1.8.1
- name: Configure (macOS ${{ matrix.osx_version }})
run: |
mkdir -p "$GITHUB_WORKSPACE/build" && cd "$GITHUB_WORKSPACE/build"
cmake "$GITHUB_WORKSPACE" \
-DCMAKE_BUILD_TYPE="MinSizeRel" \
-DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX$(OSX_VERSION).sdk" \
-DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
-DGTEST_SRC_DIR="$GOOGLE_TEST_DIR/googletest" \
-DGTEST_INCLUDE_DIR="$GOOGLE_TEST_DIR/googletest/include" \
-DQt5_DIR=/usr/local/opt/qt5/lib/cmake/Qt5 \
-DPCL_ONLY_CORE_POINT_TYPES=ON \
-DBUILD_surface_on_nurbs=ON -DUSE_UMFPACK=ON \
-DBUILD_simulation=ON \
-DBUILD_global_tests=ON \
-DBUILD_benchmarks=ON \
-DBUILD_examples=ON \
-DBUILD_tools=ON \
-DBUILD_apps=ON \
-DBUILD_apps_3d_rec_framework=ON \
-DBUILD_apps_cloud_composer=ON \
-DBUILD_apps_in_hand_scanner=ON \
-DBUILD_apps_modeler=ON \
-DBUILD_apps_point_cloud_editor=ON \
-DBoost_USE_DEBUG_RUNTIME=OFF
- name: Build (macOS ${{ matrix.osx_version }})
run: |
cd "$GITHUB_WORKSPACE/build"
cmake --build . -- -j$(sysctl -n hw.ncpu)
- name: Build tests target (macOS ${{ matrix.osx_version }})
run: |
cd "$GITHUB_WORKSPACE/build"
cmake --build . --target tests -- -j$(sysctl -n hw.ncpu)
- name: Run ctest (macOS ${{ matrix.osx_version }})
run: |
cd "$GITHUB_WORKSPACE/build"
ctest --output-on-failure -j$(sysctl -n hw.ncpu)
ubuntu-clang:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
include:
- name: ubuntu22.04-clang
image: pointcloudlibrary/env:22.04
cc: clang
cxx: clang++
build_gpu: OFF
cmake_args: ''
container: ${{ matrix.image }}
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
BUILD_GPU: ${{ matrix.build_gpu }}
CMAKE_CXX_FLAGS: '-Wall -Wextra'
DISPLAY: ':99.0'
steps:
- uses: actions/checkout@v4
- name: Start Xvfb (${{ matrix.name }})
run: (nohup Xvfb :99 -screen 0 1280x1024x24 -nolisten tcp -nolisten unix &)
- name: Configure (${{ matrix.name }})
run: |
cmake -B build -S . ${{ matrix.cmake_args }} \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
-DPCL_ONLY_CORE_POINT_TYPES=ON \
-DPCL_DISABLE_GPU_TESTS=ON \
-DBUILD_simulation=ON \
-DBUILD_surface_on_nurbs=ON \
-DBUILD_global_tests=ON \
-DBUILD_benchmarks=ON \
-DBUILD_examples=ON \
-DBUILD_tools=ON \
-DBUILD_apps=ON \
-DBUILD_apps_3d_rec_framework=ON \
-DBUILD_apps_cloud_composer=ON \
-DBUILD_apps_in_hand_scanner=ON \
-DBUILD_apps_modeler=ON \
-DBUILD_apps_point_cloud_editor=ON \
-DBUILD_CUDA=$BUILD_GPU \
-DBUILD_GPU=$BUILD_GPU \
-DBUILD_cuda_io=$BUILD_GPU \
-DBUILD_gpu_tracking=$BUILD_GPU \
-DBUILD_gpu_surface=$BUILD_GPU
cmake -B build -S .
- name: Build (${{ matrix.name }})
run: cmake --build build -- -j$(nproc)
- name: Build tests target (${{ matrix.name }})
run: cmake --build build --target tests -- -j$(nproc)
- name: Run ctest (${{ matrix.name }})
run: ctest --test-dir build --output-on-failure -j$(nproc)
ubuntu-indices:
runs-on: ubuntu-24.04
strategy:
matrix:
include:
- name: ubuntu22.04-clang-indices
image: pointcloudlibrary/env:22.04
cc: clang
cxx: clang++
index_signed: OFF
index_size: 64
container: ${{ matrix.image }}
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
CMAKE_CXX_FLAGS: '-Wall -Wextra'
steps:
- uses: actions/checkout@v4
- name: Configure (${{ matrix.name }})
run: |
cmake -B build -S . \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
-DPCL_ONLY_CORE_POINT_TYPES=ON \
-DPCL_INDEX_SIGNED=${{ matrix.index_signed }} \
-DPCL_INDEX_SIZE=${{ matrix.index_size }} \
-DBUILD_global_tests=ON
cmake -B build -S .
- name: Build (${{ matrix.name }})
run: cmake --build build -- -j$(nproc)
- name: Build tests target (${{ matrix.name }})
run: cmake --build build --target tests -- -j$(nproc)
- name: Run ctest (${{ matrix.name }})
run: ctest --test-dir build --output-on-failure -j$(nproc)
windows-msvc:
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
include:
- name: windows-x86
architecture: x86
generator: 'Visual Studio 16 2019'
platform_args: '-A Win32'
- name: windows-x64
architecture: x64
generator: 'Visual Studio 17 2022'
platform_args: '-A x64'
env:
USERNAME: larshg
FEED_URL: https://nuget.pkg.github.com/larshg/index.json
VCPKG_BINARY_SOURCES: "clear;nuget,https://nuget.pkg.github.com/larshg/index.json,readwrite"
CONFIGURATION: Release
IS_MAIN: ${{ github.ref == 'refs/heads/master' }}
VCPKG_PAT_TOKEN: ${{ secrets.VCPKG_PAT_TOKEN }}
steps:
- uses: actions/checkout@v4
- name: "check is VCPKG_PAT_TOKEN exists"
if: ${{ env.VCPKG_PAT_TOKEN == '' }}
run: 'echo "echo the secret \"VCPKG_PAT_TOKEN\" has not been made; echo please go to \"settings \> secrets \> actions\" to create it"'
- name: Bootstrap vcpkg
run: |
echo $VCPKG_INSTALLATION_ROOT
cd "$VCPKG_INSTALLATION_ROOT"
ls
git pull > nul
./bootstrap-vcpkg.bat -disableMetrics
shell: bash
- name: Add NuGet sources
shell: pwsh
run: |
.$(vcpkg fetch nuget) `
sources add `
-Source "${{ env.FEED_URL }}" `
-StorePasswordInClearText `
-Name GitHubPackages `
-UserName "${{ env.USERNAME }}" `
-Password "${{ env.VCPKG_PAT_TOKEN }}"
.$(vcpkg fetch nuget) `
setapikey "${{ env.VCPKG_PAT_TOKEN }}" `
-Source "${{ env.FEED_URL }}"
- name: Setup vcpkg
shell: pwsh
run: |
if (-Not (Test-Path "$Env:VCPKG_INSTALLATION_ROOT")) { git clone https://github.com/microsoft/vcpkg.git "$Env:VCPKG_INSTALLATION_ROOT" }
cd "$Env:VCPKG_INSTALLATION_ROOT"
.\bootstrap-vcpkg.bat
- name: Set vcpkg triplet
shell: pwsh
run: |
if ("${{ matrix.architecture }}" -eq "x64") { $t = "x64-windows-release" } else { $t = "x86-windows" }
echo "VCPKG_TRIPLET=$t" >> $env:GITHUB_ENV
- name: Install dependencies via vcpkg
shell: pwsh
run: |
$packages = @('boost','eigen3','flann','qhull','cjson','gtest','vtk','glew','freeglut')
foreach ($p in $packages) { & "$Env:VCPKG_INSTALLATION_ROOT\vcpkg.exe" install "$($p):$Env:VCPKG_TRIPLET" }
- name: Configure (${{ matrix.name }})
shell: cmd
run: |
cmake -B build -S . -G"${{ matrix.generator }}" ${{ matrix.platform_args }} ^
-DVCPKG_TARGET_TRIPLET=%VCPKG_TRIPLET% ^
-DCMAKE_TOOLCHAIN_FILE="%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake" ^
-DCMAKE_BUILD_TYPE=MinSizeRel ^
-DVCPKG_APPLOCAL_DEPS=ON ^
-DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=ON ^
-DBUILD_simulation=ON ^
-DBUILD_surface_on_nurbs=ON ^
-DBUILD_global_tests=ON ^
-DBUILD_benchmarks=%IS_MAIN% ^
-DBUILD_tools=%IS_MAIN% ^
-DPCL_DISABLE_VISUALIZATION_TESTS=ON
- name: Build (${{ matrix.name }})
shell: cmd
run: cmake --build build --config %CONFIGURATION%
- name: Build tests target (${{ matrix.name }})
shell: cmd
run: cmake --build build --target tests --config %CONFIGURATION%
- name: Run ctest (${{ matrix.name }})
shell: cmd
run: ctest --test-dir build --config %CONFIGURATION% --output-on-failure