Skip to content

SROS2 CI

SROS2 CI #1347

Workflow file for this run

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