SROS2 CI #1347
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: SROS2 CI | |
on: | |
pull_request: | |
push: | |
branches: | |
rolling | |
schedule: | |
# Run daily | |
- cron: '0 20 * * *' | |
jobs: | |
test_latest: | |
runs-on: ubuntu-latest | |
# 'osrf/ros2:devel' does *not* include RTI Connext or its' security plugins | |
# the former gets installed via rosdep in 'action-ros-ci' but the latter do *not* get installed | |
container: osrf/ros2:devel | |
steps: | |
- name: Install prerequisites for action-ros-ci and FastRTPS | |
run: | | |
apt-get -qq update | |
apt-get -qq upgrade -y | |
apt-get -qq install -y curl libasio-dev libssl-dev libtinyxml2-dev python3-colcon-coveragepy-result | |
- uses: ros-tooling/[email protected] | |
with: | |
rosdep-skip-keys: rti-connext-dds-6.0.1 | |
package-name: | | |
sros2 | |
sros2_cmake | |
test_security | |
extra-cmake-args: '-DSECURITY=ON --no-warn-unused-cli' | |
colcon-defaults: | | |
{ | |
"build": { | |
"mixin": ["coverage-pytest"] | |
}, | |
"test": { | |
"mixin": ["coverage-pytest"] | |
} | |
} | |
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml | |
target-ros2-distro: rolling | |
vcs-repo-file-url: https://raw.githubusercontent.com/ros2/ros2/rolling/ros2.repos | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
if: github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref == 'refs/heads/rolling') | |
with: | |
file: ros_ws/build/sros2/coverage.xml | |
flags: unittests | |
name: sros2-coverage | |
fail_ci_if_error: true | |
codecov_yml_path: codecov.yml | |
- name: Upload Logs | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: colcon-logs | |
path: ros_ws/log | |
test_nightly: | |
runs-on: ubuntu-latest | |
# 'osrf/ros2:nightly-rmw-nonfree' includes RTI Connext but | |
# does *not* include the security plugins or a license allowing the use of Security | |
container: osrf/ros2:nightly-rmw-nonfree | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Installing dependencies | |
run: | | |
apt-get -qq update | |
apt-get -qq upgrade -y | |
. /opt/ros/$ROS_DISTRO/setup.sh | |
rosdep update | |
DEBIAN_FRONTEND=noninteractive rosdep install -y --from-paths . --ignore-src --rosdistro $ROS_DISTRO | |
- name: Build workspace | |
run: . /opt/ros/$ROS_DISTRO/setup.sh && colcon build | |
- name: Test workspace | |
run: . /opt/ros/$ROS_DISTRO/setup.sh && colcon test --executor sequential --event-handlers console_direct+ | |
- name: Check test results | |
run: colcon test-result | |
- name: Upload Logs | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: colcon-logs | |
path: ros_ws/log |