Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use colcon test in CI to protect against AP_DDS regressions #25557

Merged
merged 2 commits into from
Nov 25, 2023

Conversation

Ryanf55
Copy link
Collaborator

@Ryanf55 Ryanf55 commented Nov 16, 2023

This enables running our existing colcon tests in CI.

#25523 introduced a regression that would have been caught by colcon test.

I assumed colcon test was already running in CI.

#25552 is a fix for the regression.

The purpose of this PR is to prevent further regressions that are caught by our existing DDS tests in CI by running a new job in CI.

Since the underlying networking code is expecting to evolve often, this will add additional testing, since AP_Networking has no automated testing yet.

Closes #25554

Depends on #25597

@Ryanf55 Ryanf55 force-pushed the dds-enable-colcon-test-in-ci branch from d98b89c to 3d13ba0 Compare November 16, 2023 22:02
@Ryanf55
Copy link
Collaborator Author

Ryanf55 commented Nov 18, 2023

@khancyr Do you know why the ROS CI image doesn't have mavproxy in path? And, why it's not marked as an error or red in logs?
https://github.com/ArduPilot/ardupilot/pull/25557/checks#step:7:1036

@khancyr
Copy link
Contributor

khancyr commented Nov 18, 2023

CI image just have what is needed, so no mavproxy by default

@Ryanf55
Copy link
Collaborator Author

Ryanf55 commented Nov 18, 2023

CI image just have what is needed, so no mavproxy by default

Ok. Should we make another CI image for doing this build, or should I extend the current ros image?

Long term, I'd imagine as some point we'll expand to also test the gazebo + NAV2 headless in CI.

@Ryanf55 Ryanf55 force-pushed the dds-enable-colcon-test-in-ci branch from c2235cd to 83e084c Compare November 21, 2023 18:18
@Ryanf55 Ryanf55 requested a review from srmainwaring November 21, 2023 19:57
@Ryanf55 Ryanf55 marked this pull request as ready for review November 21, 2023 19:57
@Ryanf55
Copy link
Collaborator Author

Ryanf55 commented Nov 21, 2023

CI image just have what is needed, so no mavproxy by default

Ok. Should we make another CI image for doing this build, or should I extend the current ros image?

Long term, I'd imagine as some point we'll expand to also test the gazebo + NAV2 headless in CI.

For now, we install mavproxy during the job instead of in docker. We'll find a faster solution long term with SITL.

.github/workflows/colcon.yml Outdated Show resolved Hide resolved
.github/workflows/colcon.yml Show resolved Hide resolved
.github/workflows/colcon.yml Outdated Show resolved Hide resolved
@Ryanf55
Copy link
Collaborator Author

Ryanf55 commented Nov 22, 2023

Rebase this once #25597 goes in

@Ryanf55 Ryanf55 force-pushed the dds-enable-colcon-test-in-ci branch from a9370d4 to c9378f4 Compare November 22, 2023 21:22
@Ryanf55 Ryanf55 added the CI label Nov 23, 2023
@Ryanf55 Ryanf55 requested a review from khancyr November 23, 2023 01:41
Copy link
Contributor

@srmainwaring srmainwaring left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM thanks @Ryanf55. A note about the use of the networking flag would be helpful, but not required for this approval.

Tools/ros2/ardupilot_sitl/CMakeLists.txt Outdated Show resolved Hide resolved
Tools/ros2/ardupilot_sitl/CMakeLists.txt Outdated Show resolved Hide resolved
@Ryanf55 Ryanf55 force-pushed the dds-enable-colcon-test-in-ci branch from c9378f4 to cad20f3 Compare November 25, 2023 17:00
Ryanf55 and others added 2 commits November 25, 2023 10:02
* This flag was already removed, but the flags were left around

Signed-off-by: Ryan Friedman <[email protected]>
* Use checkout v4 to pull in ArduPilot into a subdir first
* Enable console cohesion during test since JUnit reporting is out of
  scope
* Install mavproxy separately as needed, alternative to --console
* Hide wget progress
* Install local pymavlink

Co-authored-by: Pierre Kancir <[email protected]>
Signed-off-by: Ryan Friedman <[email protected]>
@Ryanf55 Ryanf55 force-pushed the dds-enable-colcon-test-in-ci branch from cad20f3 to b4cf189 Compare November 25, 2023 17:03
@magicrub
Copy link
Contributor

Looks like @Ryanf55 tagged it as merge_on_CI but then @tridge requested changes that are now outdated, so I presume they're satisfied. It's currently passing CI so should we merge it?

@Ryanf55
Copy link
Collaborator Author

Ryanf55 commented Nov 25, 2023

Looks like @Ryanf55 tagged it as merge_on_CI but then @tridge requested changes that are now outdated, so I presume they're satisfied. It's currently passing CI so should we merge it?

Yea, he wanted me to remove --enable-testing, so I did and squashed. Feel free to confirm.

@peterbarker peterbarker merged commit bf6bd3a into ArduPilot:master Nov 25, 2023
87 checks passed
@Ryanf55 Ryanf55 deleted the dds-enable-colcon-test-in-ci branch November 25, 2023 23:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

AP_DDS: Run colcon tests in CI
6 participants