-
Notifications
You must be signed in to change notification settings - Fork 2
CI Architecture
Based on Esteve stack of build. but 2 majors issues :
- Esteve need to use private image for DDS-vendor limitation.
- All the build is made in only-one job. But travis-ci limited the duration of build to ~50 minutes. (only 10 minutes is available to your app build)
Concept is to separate in many build...
Build any day (for check compatibility with ROS2).
- Docker Image is define on DockerFile from ros2java-alfred/ros2_java_docker for Debian and Ubuntu.
- Image is build (and store) on Docker Hub service Build with distribution tag. (eg. debian).
- Travis build ros2java stack, on special jobs based on Docker image from Docker Hub service Build. (TODO trigger).
-
From Travis job build push new images with tags on Docker Hub service Tags :
- <dist>_ros2java : for last successful image.
- <dist>_ros2java_<build> : for specifics builds.
- Travis build Your_App on job, with last successful image of <dist>_ros2java .
a example of .travis.yml file on ALfred-App
Key | default value | Descriptions |
---|---|---|
APP_NAME | xxxxx | Your ros2 for java package name. |
APP_PATH | ws/${APP_NAME} | Your default workspace. |
CI | true | Define you use CI infrastructure (to manualy launch). |
CI_NAME | travis-ci | Name of the CI system use. |
DOCKER_DIST | debian-ros2java | Docker images Tag to use for build. |
DOCKER_REPO | theosakamg7/ros2_java_docker | Docker image to use for build. |
PKG_EXCLUDE | "" | Ros2 packages to not build (separate by space). |
for PKG_EXCLUDE we recommend to use "ament_cmake_export_jars ament_cmake_ros connext_cmake_module console_bridge fastcdr fastrtps fastrtps_cmake_module launch dummy_robot_bringup launch_testing opensplice_cmake_module orocos_kdl poco_vendor class_loader python_cmake_module rcljava_common rcutils rmw rmw_implementation_cmake rosidl_default_generators rosidl_default_runtime rosidl_generator_dds_idl rosidl_parser rosidl_cmake rosidl_typesupport_interface rosidl_generator_c rmw_connext_shared_cpp rosidl_generator_cpp rosidl_typesupport_c rosidl_typesupport_connext_cpp rosidl_typesupport_connext_c rmw_connext_cpp rosidl_typesupport_cpp rosidl_typesupport_introspection_c rosidl_typesupport_introspection_cpp rmw_connext_dynamic_cpp rmw_fastrtps_cpp rosidl_typesupport_opensplice_cpp rosidl_typesupport_opensplice_c rmw_opensplice_cpp rmw_implementation rosidl_generator_java rosidl_generator_py builtin_interfaces example_interfaces lifecycle_msgs pendulum_msgs rcl_interfaces rttest std_msgs actionlib_msgs geometry_msgs diagnostic_msgs nav_msgs rcl rcl_lifecycle rclcpp composition dummy_map_server examples_rclcpp_minimal_client examples_rclcpp_minimal_composition examples_rclcpp_minimal_publisher examples_rclcpp_minimal_service examples_rclcpp_minimal_subscriber examples_rclcpp_minimal_timer rcljava rcljava_utils rclpy demo_nodes_py examples_rclpy_minimal_client examples_rclpy_minimal_publisher examples_rclpy_minimal_service examples_rclpy_minimal_subscriber rclcpp_lifecycle lifecycle ros1_bridge sensor_msgs demo_nodes_cpp dummy_sensors image_tools intra_process_demo rcljava_examples shape_msgs std_srvs stereo_msgs test_communication cli_tools_py test_rclcpp tf2 tf2_msgs tf2_ros tf2_geometry_msgs tinyxml_vendor tlsf tlsf_cpp pendulum_control topic_monitor trajectory_msgs urdfdom_headers urdfdom urdf kdl_parser robot_state_publisher visualization_msgs".
Extra :
- COVERALLS_REPO_TOKEN : Coveralls service token of project.
- Debian or Ubuntu docker official image.
- ROS2 Build chain tools
- ROS2 Java Build chain tools (eg. theosakamg7/ros2_java_docker:debian )
- ROS2 Java Building (eg. theosakamg7/ros2_java_docker:debian-ros2java )
- Your writable container.