Universal_Robots_Client_Library icon indicating copy to clipboard operation
Universal_Robots_Client_Library copied to clipboard

Trigger the drivers integration tests

Open urmahp opened this issue 3 years ago • 11 comments

When introducing new changes to the client library, the changes applied could potentially make the drivers that are dependent on this library stop functioning properly. (ROS driver and Isaac driver)

To increase validation of the changes applied to this library, the build pipeline from the drivers could be triggered inside the build pipeline of this library or more specific trigger the integration tests from the drivers. This could decrease the possibility of introducing changes to the client library that would make the drivers stop functioning and to some extend ensure that the drivers are functioning with the new changes.

As of writing there is only one test in this library testing this library against a simulated robot which is the rtde_client test. This is also a motivation for triggering the drivers integration tests.

urmahp avatar Apr 22 '21 08:04 urmahp

Seeing as industrial_ci is used here, this should not be that difficult to implement.

I believe it should be sufficient to specify the relevant packages for a build in a downstream workspace. industrial_ci then takes care of everything else.

The detailed documentation has a few sections which go into some detail.

@ipa-mdl?

gavanderhoorn avatar Apr 22 '21 08:04 gavanderhoorn

@urmahp good point!

@gavanderhoorn Thanks for the hints!

fmauch avatar Apr 22 '21 08:04 fmauch

Added downstream tests for ROS driver. @urmahp you will add something for the ISAAC driver?

Unfortunately, it's probably not going to be that easy as this is not a catkin package where the tests get run by the industrial_ci pipeline automatically.

fmauch avatar Apr 23 '21 08:04 fmauch

Added downstream tests for ROS driver. @urmahp you will add something for the ISAAC driver?

Unfortunately, it's probably not going to be that easy as this is not a catkin package where the tests get run by the industrial_ci pipeline automatically.

Yes I also think it is going to be a bit more difficult to add something for the ISAAC driver, but once I have the pipeline running in the ISAAC driver I will look at implementing something for it.

urmahp avatar Apr 23 '21 08:04 urmahp

As a short-cut you could add a manifest to the directory containing the main CMakeLists.txt.

It would still not make it a "Catkin package", but with build_type set to cmake, both Colcon and catkin_tools can build such packages, and so should industrial_ci.

gavanderhoorn avatar Apr 23 '21 08:04 gavanderhoorn

As a short-cut you could add a manifest to the directory containing the main CMakeLists.txt.

It would still not make it a "Catkin package", but with build_type set to cmake, both Colcon and catkin_tools can build such packages, and so should industrial_ci.

This would be only a build check, right? As tests are not defined in a catkin way, they won't be run.

fmauch avatar Apr 23 '21 08:04 fmauch

I'm sort-of expecting tests to be run as well, as in the end, it's just a target in a Makefile, but I'm not sure about it.

Would be worth a try.

gavanderhoorn avatar Apr 23 '21 08:04 gavanderhoorn

At least for this repo, tests aren't run, which is why I have setup a second workflow running the tests, which only calls make test.

fmauch avatar Apr 23 '21 08:04 fmauch

Ok.

Well, it's possible to run custom commands as part of the pipeline, so running make test yourself should be possible.

See tesseract/.github/workflows/bionic_build.yml fi.

None of the tesseract packages are Catkin packages. They're not even "ROS packages" (whatever that means) in that repository.

(I'm of course not saying you should absolutely use industrial_ci, just wanted to mention the possibility)

gavanderhoorn avatar Apr 23 '21 09:04 gavanderhoorn

As tests are not defined in a catkin way, they won't be run.

colcon runs CTest as well..

mathias-luedtke avatar Apr 23 '21 09:04 mathias-luedtke

It also seem that GitHub action can trigger action in other repos http://blog.marcnuri.com/triggering-github-actions-across-different-repositories/

urrsk avatar Apr 23 '21 12:04 urrsk

Closing this, as the drivers are built and tested in CI by now.

fmauch avatar Sep 11 '24 08:09 fmauch