From 554d1c72680eacd576b3686b3bfa17e336aeccff Mon Sep 17 00:00:00 2001 From: Mikael Arguedas Date: Wed, 8 May 2024 15:22:54 +0200 Subject: [PATCH] [CI] Reenabling source test and coverage workflow (#301) * test reenabling test_latest and use custom action-ros-ci * bump action versions * explicitly skip installing rti-connext for now * enable coverage * build latest from source * run job on push only for rolling branch * add token for codecov v4 * test once more * osrf/ros2:devel now includes pytest-cov --------- Signed-off-by: Mikael Arguedas --- .github/workflows/test.yml | 88 ++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 36 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2828786a..63f30df5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,52 +2,68 @@ 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/action-ros-ci@v0.3 - # with: - # package-name: | - # sros2 - # sros2_cmake - # test_security - # extra-cmake-args: '-DSECURITY=ON --no-warn-unused-cli' - # target-ros2-distro: rolling - # rosdep-skip-keys: rti-connext-dds-6.0.1 - # - name: Upload coverage to Codecov - # uses: codecov/codecov-action@v1 - # 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 - # - name: Upload Logs - # uses: actions/upload-artifact@v1 - # if: failure() - # with: - # name: colcon-logs - # path: ros_ws/log + 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/action-ros-ci@v0.3 + 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 + - 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@v2 + - uses: actions/checkout@v4 - name: Installing dependencies run: | apt-get -qq update @@ -62,7 +78,7 @@ jobs: - name: Check test results run: colcon test-result - name: Upload Logs - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 if: failure() with: name: colcon-logs