-
Notifications
You must be signed in to change notification settings - Fork 2
130 lines (109 loc) · 3.9 KB
/
Copy pathci.yml
File metadata and controls
130 lines (109 loc) · 3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build-and-test:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential cmake \
libeigen3-dev \
libpcl-dev \
libopencv-dev \
libceres-dev \
libunwind-dev \
libgtest-dev
- name: Install Python dependencies
run: python3 -m pip install --upgrade pip && python3 -m pip install -r requirements-lock.txt
- name: Configure
run: |
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_PYTHON_BINDINGS=ON
- name: Build
run: cmake --build build -j$(nproc)
- name: Test
run: cd build && ctest --output-on-failure
- name: Python bindings smoke
run: python3 python/example_synthetic.py
- name: Dogfooding smoke (committed 3-frame MCD fixture ~3MB)
run: |
chmod +x evaluation/scripts/smoke_ci_fixture.sh
bash evaluation/scripts/smoke_ci_fixture.sh
- name: Multimodal smoke (committed 3-frame MCD fixture + visual CSVs)
run: |
chmod +x evaluation/scripts/smoke_multimodal_fixture.sh
bash evaluation/scripts/smoke_multimodal_fixture.sh
- name: 2D scan smoke (committed Intel Lab val slice, 20 frames)
run: |
chmod +x evaluation/scripts/smoke_scan2d_fixture.sh
bash evaluation/scripts/smoke_scan2d_fixture.sh
- name: 2D scan long smoke (committed MIT/Intel train slices, 20 frames)
run: |
chmod +x evaluation/scripts/smoke_scan2d_long_fixture.sh
bash evaluation/scripts/smoke_scan2d_long_fixture.sh
- name: One-command demo report
run: |
bash evaluation/scripts/demo_localization_zoo.sh --skip-build
python3 evaluation/scripts/validate_showcase.py \
--require-demo \
--demo-dir experiments/results/runs/demo_localization_zoo
- name: Upload demo report artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: localization-zoo-demo-report
path: experiments/results/runs/demo_localization_zoo/
if-no-files-found: ignore
retention-days: 14
- name: Python script regressions
run: python3 -m unittest discover -s tests -p 'test_*.py' -v
- name: LiDAR v10 release contract
run: |
python3 -m unittest -q \
tests/test_direction_consistent_rotation_fusion.py \
tests/test_lidar_v10_manifest.py \
tests/test_lidar_sota_tools.py \
tests/test_official_kiss_pcd_odometry.py \
tests/test_external_odometry_evaluator.py \
tests/test_reproduce_lidar_v10.py \
tests/test_boreas_window_tools.py
ros2-colcon-build:
runs-on: ubuntu-22.04
container:
image: ros:humble
steps:
- uses: actions/checkout@v4
- name: Install ROS2 build dependencies
run: |
apt-get update
apt-get install -y \
build-essential \
cmake \
libeigen3-dev \
libpcl-dev \
libopencv-dev \
libceres-dev \
python3-colcon-common-extensions \
ros-humble-ament-cmake \
ros-humble-rclcpp \
ros-humble-sensor-msgs \
ros-humble-geometry-msgs \
ros-humble-nav-msgs \
ros-humble-std-msgs \
ros-humble-tf2-ros \
ros-humble-tf2-eigen \
ros-humble-pcl-conversions \
ros-humble-pcl-ros
- name: Build ROS2 package
shell: bash
run: |
source /opt/ros/humble/setup.bash
cd ros2
colcon build --packages-select localization_zoo_ros