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

[META] CI: Refactor CI workflows to rely on ros-action-ci instead #268

Open
2 of 4 tasks
francocipollone opened this issue Jun 2, 2022 · 4 comments
Open
2 of 4 tasks
Assignees

Comments

@francocipollone
Copy link
Collaborator

francocipollone commented Jun 2, 2022

Affects all the repositories

Summary

As repositories are public we can start relying on ros-action-ci actions

Some clean up to have in mind:

Victory condition

Use ros-action-ci for:

@francocipollone
Copy link
Collaborator Author

CC: @agalbachicar

@francocipollone
Copy link
Collaborator Author

My only concern goes with drake_vendor: With drake_vendor we have to execute an script for installing it in the system. I guess that installing drake before running the ros-action-ci action should be enough

@francocipollone
Copy link
Collaborator Author

francocipollone commented Jun 7, 2022

More info

We currently have 3 workflows in the repositories.

  • build.yaml: Simple GCC build and test. It builds without docs first and then with docs (-DBUILD_DOCS cmake args)

    • without docs: Using ros-action-ci is straight forward
    • with docs: After changing the ament_cmake_doxygen dependency to be <doc_depend> to be compatible with Ros build farm, the dependency is missed when build up-to maliput, therefore ament_cmake_doxygen doesn't get built. So, Using ros-action-ci here isn't straight forward. This should be ok when migrating to use rosdocs2 instead
  • sanitizers.yaml: clang build + asan + ubsan + tsan sanitizers.

    • GCC is expected to be used when using ros-action-ci. Is clang still needed to be supported?
    • asan (gcc) is supported by ros-action-ci
    • tsan and ubsan might be addressed via colcon mixers. PoC needed.
  • scan_build.yaml: Runs scan-build using clang

How this complies with long term ROS build farm?

  • In the build farm, CI is expected to be run(gcc+build+tests) for pull requests targeting main,
    • Having a GH Action CI using ros-action-ci for push and pull requests is still valid.
  • Sanitizers might be possible to be run in ROS build farm, but only for gcc compiler.
    • If clang support is still needed, we will still rely on gh actions for this.
  • Scan build
    • If clang support is still needed, we will still rely on gh actions for this.

Regarding the ros-action-ci's feature for working with interdependent PRs

  • When using action-ros-ci-repos-override, the entire repos file is being overridden, meaning that all the repos should be added to the repos file.
  • It only works for Github Action triggered via pull_request.
  • If PR's description has changed, then retriggering the workflow from Action tab doesn't seem to work (The PR's description is not updated for the action). You have to push again to the branch. (It could be an undesired behavior to report)

@francocipollone
Copy link
Collaborator Author

francocipollone commented Jun 9, 2022

Steps

Note: #273 will cause not to be able to test the documentation as ament_cmake_doxygen doesn't get build as colcon doesn't finds ament_cmake_doxygent a dependency when <doc_depend> labels is used for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant