-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (112 loc) · 3.78 KB
/
Copy pathros2-ci.yml
File metadata and controls
129 lines (112 loc) · 3.78 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
name: ROS 2 CI
on:
pull_request:
push:
branches:
- main
permissions:
contents: read
concurrency:
group: ros2-ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-test:
name: Humble build and test
runs-on: ubuntu-22.04
timeout-minutes: 30
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Test web dashboard helpers
run: |
node --test \
control/fleet_gateway/test/test_manual_keys.js \
control/fleet_gateway/test/test_map_math.js \
control/fleet_gateway/test/test_map_viewport.js \
control/fleet_gateway/test/test_robot_display.js
- name: Set up ROS 2 Humble
uses: ros-tooling/setup-ros@v0.7
with:
required-ros-distributions: humble
- name: Install Jammy navigation runtime dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libunwind-15-dev \
ros-humble-rmw-cyclonedds-cpp \
shellcheck
- name: Install package dependencies
run: |
for attempt in 1 2 3; do
if rosdep update; then
break
fi
if [[ "${attempt}" == "3" ]]; then
exit 1
fi
sleep $((attempt * 5))
done
rosdep install \
--from-paths robot control \
--ignore-src \
--rosdistro humble \
--skip-keys ament_python \
-y
- name: Install pinned Zenoh ROS 2 bridge
run: bash infra/zenoh/install-standalone.sh
- name: Build workspace packages
shell: bash
run: |
source /opt/ros/humble/setup.bash
colcon build \
--base-paths robot control \
--event-handlers console_direct+
- name: Validate operational files
shell: bash
run: |
shellcheck --exclude=SC1090,SC1091 \
infra/mlops/*.sh infra/navigation/*.sh infra/zenoh/*.sh \
scripts/control-pc/*.sh scripts/tb1/*.sh
bash scripts/tb1/deploy_acceptance.sh --dry-run
python3 -m py_compile \
infra/navigation/robotless_operations_smoke_client.py \
infra/navigation/robotless_web_preview.py
bash infra/systemd/validate-units.sh
source /opt/ros/humble/setup.bash
source install/setup.bash
ros2 launch navigation_agent tb1_mapping.launch.py --show-args
ros2 launch navigation_agent tb1_navigation.launch.py --show-args
ros2 launch fleet_gateway weekend_mock.launch.py --show-args
- name: Validate Windows control scripts
shell: pwsh
run: scripts/control-pc/validate_scripts.ps1
- name: Run robotless navigation smoke test
shell: bash
env:
ROS_DOMAIN_ID: "142"
run: bash infra/navigation/run-robotless-navigation-smoke.sh
- name: Run robotless Zenoh action smoke test
shell: bash
run: bash infra/navigation/run-robotless-zenoh-action-smoke.sh
- name: Run robotless task and fault smoke test
shell: bash
env:
ROS_DOMAIN_ID: "142"
run: bash infra/navigation/run-robotless-operations-smoke.sh
- name: Run workspace tests
shell: bash
env:
ROS_DOMAIN_ID: "142"
run: |
source /opt/ros/humble/setup.bash
source install/setup.bash
colcon test \
--packages-select \
fleet_interfaces \
safety_watchdog_guard \
safety_watchdog \
robot_agent \
navigation_agent \
fleet_gateway \
--event-handlers console_direct+
colcon test-result --verbose