Skip to content

Commit a363987

Browse files
committed
more full test of build in github runners.
1 parent 4784fc9 commit a363987

1 file changed

Lines changed: 236 additions & 31 deletions

File tree

.github/workflows/build-pcl.yml

Lines changed: 236 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,249 @@ name: build-pcl
33
on: [push, pull_request]
44

55
jobs:
6-
build-pcl:
7-
runs-on: ubuntu-latest
8-
container:
9-
image: pointcloudlibrary/env:24.04
10-
6+
gcc-build:
7+
runs-on: ubuntu-24.04
8+
strategy:
9+
fail-fast: false
10+
matrix:
11+
include:
12+
- name: ubuntu20.04-gcc
13+
image: pointcloudlibrary/env:20.04
14+
cc: gcc
15+
cxx: g++
16+
build_gpu: ON
17+
cmake_args: '-DPCL_WARNINGS_ARE_ERRORS=ON -DCMAKE_CXX_STANDARD=14 -DCMAKE_CUDA_STANDARD=14'
18+
- name: ubuntu24.04-gcc
19+
image: pointcloudlibrary/env:24.04
20+
cc: gcc
21+
cxx: g++
22+
build_gpu: ON
23+
cmake_args: '-DCMAKE_CXX_STANDARD=17 -DCMAKE_CUDA_STANDARD=17'
24+
container: ${{ matrix.image }}
25+
env:
26+
CC: ${{ matrix.cc }}
27+
CXX: ${{ matrix.cxx }}
28+
BUILD_GPU: ${{ matrix.build_gpu }}
29+
CMAKE_CXX_FLAGS: '-Wall -Wextra -Wnoexcept-type'
30+
DISPLAY: ':99.0'
1131
steps:
12-
- uses: actions/checkout@v4
13-
14-
- name: list free space
15-
run: df -h
16-
17-
- name: build with CMake
18-
run: |
19-
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON . \
32+
- uses: actions/checkout@v4
33+
- name: Start Xvfb (${{ matrix.name }})
34+
run: (nohup Xvfb :99 -screen 0 1280x1024x24 -nolisten tcp -nolisten unix &)
35+
- name: Configure (${{ matrix.name }})
36+
run: |
37+
cmake -B build -S . ${{ matrix.cmake_args }} \
38+
-DCMAKE_BUILD_TYPE=MinSizeRel \
39+
-DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
40+
-DPCL_ONLY_CORE_POINT_TYPES=ON \
41+
-DPCL_DISABLE_GPU_TESTS=ON \
42+
-DBUILD_simulation=ON \
43+
-DBUILD_surface_on_nurbs=ON \
44+
-DBUILD_global_tests=ON \
2045
-DBUILD_benchmarks=ON \
2146
-DBUILD_examples=ON \
22-
-DBUILD_simulation=ON \
23-
-DBUILD_global_tests=ON
24-
make -j$(nproc)
47+
-DBUILD_tools=ON \
48+
-DBUILD_apps=ON \
49+
-DBUILD_apps_3d_rec_framework=ON \
50+
-DBUILD_apps_cloud_composer=ON \
51+
-DBUILD_apps_in_hand_scanner=ON \
52+
-DBUILD_apps_modeler=ON \
53+
-DBUILD_apps_point_cloud_editor=ON \
54+
-DBUILD_CUDA=$BUILD_GPU \
55+
-DBUILD_GPU=$BUILD_GPU \
56+
-DBUILD_cuda_io=$BUILD_GPU \
57+
-DBUILD_gpu_tracking=$BUILD_GPU \
58+
-DBUILD_gpu_surface=$BUILD_GPU
59+
cmake -B build -S .
60+
- name: Build (${{ matrix.name }})
61+
run: cmake --build build -- -j$(nproc)
62+
- name: Build tests target (${{ matrix.name }})
63+
run: cmake --build build --target tests -- -j$(nproc)
64+
- name: Run ctest (${{ matrix.name }})
65+
run: ctest --test-dir build --output-on-failure -j$(nproc)
2566

26-
- name: Run unit tests
27-
run: |
28-
ctest --output-on-failure -j$(nproc)
67+
macos-clang:
68+
runs-on: ${{ matrix.vmimage }}
69+
strategy:
70+
fail-fast: false
71+
matrix:
72+
include:
73+
- vmimage: macOS-14
74+
osx_version: '14'
75+
- vmimage: macOS-15
76+
osx_version: '15'
77+
env:
78+
CMAKE_CXX_FLAGS: '-Wall -Wextra -Wabi -Werror -Wno-error=deprecated-declarations'
79+
GOOGLE_TEST_DIR: '${{ github.workspace }}/googletest'
80+
OSX_VERSION: ${{ matrix.osx_version }}
81+
steps:
82+
- uses: actions/checkout@v4
83+
- name: Install Dependencies (macOS ${{ matrix.osx_version }})
84+
run: |
85+
brew update
86+
brew install cmake pkg-config boost eigen flann nanoflann glew libusb qhull vtk freeglut qt@5 libpcap libomp suite-sparse zlib google-benchmark cjson
87+
git clone https://github.com/abseil/googletest.git "$GOOGLE_TEST_DIR"
88+
cd "$GOOGLE_TEST_DIR" && git checkout release-1.8.1
89+
- name: Configure (macOS ${{ matrix.osx_version }})
90+
run: |
91+
cmake -B build -S . \
92+
-DCMAKE_BUILD_TYPE=MinSizeRel \
93+
-DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX${OSX_VERSION}.sdk" \
94+
-DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
95+
-DGTEST_SRC_DIR="$GOOGLE_TEST_DIR/googletest" \
96+
-DGTEST_INCLUDE_DIR="$GOOGLE_TEST_DIR/googletest/include" \
97+
-DQt5_DIR="/usr/local/opt/qt@5/lib/cmake/Qt5" \
98+
-DPCL_ONLY_CORE_POINT_TYPES=ON \
99+
-DBUILD_surface_on_nurbs=ON -DUSE_UMFPACK=ON \
100+
-DBUILD_simulation=ON \
101+
-DBUILD_global_tests=ON \
102+
-DBUILD_benchmarks=ON \
103+
-DBUILD_examples=ON \
104+
-DBUILD_tools=ON \
105+
-DBUILD_apps=ON \
106+
-DBUILD_apps_3d_rec_framework=ON \
107+
-DBUILD_apps_cloud_composer=ON \
108+
-DBUILD_apps_in_hand_scanner=ON \
109+
-DBUILD_apps_modeler=ON \
110+
-DBUILD_apps_point_cloud_editor=ON \
111+
-DBoost_USE_DEBUG_RUNTIME=OFF
112+
- name: Build (macOS ${{ matrix.osx_version }})
113+
run: cmake --build build -- -j$(sysctl -n hw.ncpu)
114+
- name: Build tests target (macOS ${{ matrix.osx_version }})
115+
run: cmake --build build --target tests -- -j$(sysctl -n hw.ncpu)
116+
- name: Run ctest (macOS ${{ matrix.osx_version }})
117+
run: ctest --test-dir build --output-on-failure -j$(sysctl -n hw.ncpu)
29118

30-
test-free-space-host:
31-
runs-on: ubuntu-latest
119+
ubuntu-clang:
120+
runs-on: ubuntu-24.04
121+
strategy:
122+
fail-fast: false
123+
matrix:
124+
include:
125+
- name: ubuntu22.04-clang
126+
image: pointcloudlibrary/env:22.04
127+
cc: clang
128+
cxx: clang++
129+
build_gpu: OFF
130+
cmake_args: ''
131+
container: ${{ matrix.image }}
132+
env:
133+
CC: ${{ matrix.cc }}
134+
CXX: ${{ matrix.cxx }}
135+
BUILD_GPU: ${{ matrix.build_gpu }}
136+
CMAKE_CXX_FLAGS: '-Wall -Wextra'
137+
DISPLAY: ':99.0'
32138
steps:
33-
- name: list free space
34-
run: df -h
139+
- uses: actions/checkout@v4
140+
- name: Start Xvfb (${{ matrix.name }})
141+
run: (nohup Xvfb :99 -screen 0 1280x1024x24 -nolisten tcp -nolisten unix &)
142+
- name: Configure (${{ matrix.name }})
143+
run: |
144+
cmake -B build -S . ${{ matrix.cmake_args }} \
145+
-DCMAKE_BUILD_TYPE=MinSizeRel \
146+
-DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
147+
-DPCL_ONLY_CORE_POINT_TYPES=ON \
148+
-DPCL_DISABLE_GPU_TESTS=ON \
149+
-DBUILD_simulation=ON \
150+
-DBUILD_surface_on_nurbs=ON \
151+
-DBUILD_global_tests=ON \
152+
-DBUILD_benchmarks=ON \
153+
-DBUILD_examples=ON \
154+
-DBUILD_tools=ON \
155+
-DBUILD_apps=ON \
156+
-DBUILD_apps_3d_rec_framework=ON \
157+
-DBUILD_apps_cloud_composer=ON \
158+
-DBUILD_apps_in_hand_scanner=ON \
159+
-DBUILD_apps_modeler=ON \
160+
-DBUILD_apps_point_cloud_editor=ON \
161+
-DBUILD_CUDA=$BUILD_GPU \
162+
-DBUILD_GPU=$BUILD_GPU \
163+
-DBUILD_cuda_io=$BUILD_GPU \
164+
-DBUILD_gpu_tracking=$BUILD_GPU \
165+
-DBUILD_gpu_surface=$BUILD_GPU
166+
cmake -B build -S .
167+
- name: Build (${{ matrix.name }})
168+
run: cmake --build build -- -j$(nproc)
169+
- name: Build tests target (${{ matrix.name }})
170+
run: cmake --build build --target tests -- -j$(nproc)
171+
- name: Run ctest (${{ matrix.name }})
172+
run: ctest --test-dir build --output-on-failure -j$(nproc)
35173

36-
test-free-space-windows:
37-
runs-on: windows-latest
174+
ubuntu-indices:
175+
runs-on: ubuntu-24.04
176+
strategy:
177+
matrix:
178+
include:
179+
- name: ubuntu22.04-clang-indices
180+
image: pointcloudlibrary/env:22.04
181+
cc: clang
182+
cxx: clang++
183+
index_signed: OFF
184+
index_size: 64
185+
container: ${{ matrix.image }}
186+
env:
187+
CC: ${{ matrix.cc }}
188+
CXX: ${{ matrix.cxx }}
189+
CMAKE_CXX_FLAGS: '-Wall -Wextra'
38190
steps:
39-
- name: list free space
40-
run: "fsutil volume diskfree c:"
191+
- uses: actions/checkout@v4
192+
- name: Configure (${{ matrix.name }})
193+
run: |
194+
cmake -B build -S . \
195+
-DCMAKE_BUILD_TYPE=MinSizeRel \
196+
-DCMAKE_CXX_FLAGS="$CMAKE_CXX_FLAGS" \
197+
-DPCL_ONLY_CORE_POINT_TYPES=ON \
198+
-DPCL_INDEX_SIGNED=${{ matrix.index_signed }} \
199+
-DPCL_INDEX_SIZE=${{ matrix.index_size }} \
200+
-DBUILD_global_tests=ON
201+
cmake -B build -S .
202+
- name: Build (${{ matrix.name }})
203+
run: cmake --build build -- -j$(nproc)
204+
- name: Build tests target (${{ matrix.name }})
205+
run: cmake --build build --target tests -- -j$(nproc)
206+
- name: Run ctest (${{ matrix.name }})
207+
run: ctest --test-dir build --output-on-failure -j$(nproc)
41208

42-
test-free-space-macos:
43-
runs-on: macos-latest
209+
windows-msvc:
210+
runs-on: windows-2022
211+
strategy:
212+
fail-fast: false
213+
matrix:
214+
include:
215+
- name: windows-x86
216+
architecture: x86
217+
generator: 'Visual Studio 16 2019'
218+
platform_args: '-A Win32'
219+
image: pointcloudlibrary/env:windows2022-x86
220+
- name: windows-x64
221+
architecture: x64
222+
generator: 'Visual Studio 17 2022'
223+
platform_args: '-A x64'
224+
image: pointcloudlibrary/env:windows2022-x64
225+
env:
226+
CONFIGURATION: Release
227+
IS_MAIN: ${{ github.ref == 'refs/heads/master' }}
44228
steps:
45-
- name: list free space
46-
run: df -h
229+
- uses: actions/checkout@v4
230+
- name: Docker build and test (${{ matrix.name }})
231+
shell: pwsh
232+
run: |
233+
docker pull ${{ matrix.image }}
234+
docker run --rm -v "${{ github.workspace }}:C:\src" -w C:\src `
235+
-e CONFIGURATION=$Env:CONFIGURATION -e IS_MAIN=$Env:IS_MAIN `
236+
${{ matrix.image }} powershell -Command "`
237+
cmake -B build -S . -G \"${{ matrix.generator }}\" ${{ matrix.platform_args }} `
238+
-DVCPKG_TARGET_TRIPLET=${{ matrix.architecture }}-windows-rel `
239+
-DCMAKE_BUILD_TYPE=MinSizeRel `
240+
-DVCPKG_APPLOCAL_DEPS=ON `
241+
-DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=ON `
242+
-DBUILD_simulation=ON `
243+
-DBUILD_surface_on_nurbs=ON `
244+
-DBUILD_global_tests=ON `
245+
-DBUILD_benchmarks=$Env:IS_MAIN `
246+
-DBUILD_tools=$Env:IS_MAIN `
247+
-DPCL_DISABLE_VISUALIZATION_TESTS=ON; `
248+
cmake --build build --config $Env:CONFIGURATION; `
249+
cmake --build build --target tests --config $Env:CONFIGURATION; `
250+
ctest --test-dir build --config $Env:CONFIGURATION --output-on-failure `
251+
"

0 commit comments

Comments
 (0)