From 009cca3e71a567db83a577d11da9b42920ab544d Mon Sep 17 00:00:00 2001 From: flipflip Date: Tue, 16 Jul 2024 18:11:10 +0200 Subject: [PATCH 1/6] Use pre-made docker images for CI, use ROS Noetic, Humble and Jazzy (remove Melodic and Foxy) --- .github/workflows/build_test_ros.yml | 42 +++++++++++++-------------- .github/workflows/build_test_ros2.yml | 30 +++++++++---------- CHANGELOG.md | 4 +++ 3 files changed, 40 insertions(+), 36 deletions(-) diff --git a/.github/workflows/build_test_ros.yml b/.github/workflows/build_test_ros.yml index 026253b..7b3b5a6 100644 --- a/.github/workflows/build_test_ros.yml +++ b/.github/workflows/build_test_ros.yml @@ -15,16 +15,16 @@ jobs: fail-fast: false matrix: config: - - name: "melodic" - container: - image: "osrf/ros:melodic-desktop-full" - env: - ROS_DISTRO: melodic + # - name: "melodic" + # container: + # image: "osrf/ros:melodic-desktop-full" + # env: + # ROS_DISTRO: melodic - name: "noetic" container: - image: "osrf/ros:noetic-desktop-full" - env: - ROS_DISTRO: noetic + image: "ghcr.io/fixposition/fixposition/fixposition-sdk:noetic-ci" + # env: + # ROS_DISTRO: noetic container: ${{ matrix.config.container }} @@ -33,25 +33,25 @@ jobs: shell: bash steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: path: src/fixposition_driver - name: Checkout Deps - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: fixposition/fixposition_gnss_tf path: src/fixposition_gnss_tf - - name: Set up Deps - run: | - sudo apt-get update - sudo apt-get install -y libeigen3-dev libyaml-cpp-dev libgtest-dev python3-osrf-pycommon python3-catkin-tools - - name: Install Gtest - if: matrix.config.container.image == 'osrf/ros:melodic-desktop-full' - run: | - cd /usr/src/gtest - sudo cmake . - sudo make - sudo make install + # - name: Set up Deps + # run: | + # sudo apt-get update + # sudo apt-get install -y libeigen3-dev libyaml-cpp-dev libgtest-dev python3-osrf-pycommon python3-catkin-tools + # - name: Install Gtest + # if: matrix.config.container.image == 'osrf/ros:melodic-desktop-full' + # run: | + # cd /usr/src/gtest + # sudo cmake . + # sudo make + # sudo make install - name: Ignore ROS2 node run: | touch src/fixposition_driver/fixposition_driver_ros2/CATKIN_IGNORE diff --git a/.github/workflows/build_test_ros2.yml b/.github/workflows/build_test_ros2.yml index 0111191..49321d2 100644 --- a/.github/workflows/build_test_ros2.yml +++ b/.github/workflows/build_test_ros2.yml @@ -17,14 +17,14 @@ jobs: config: - name: "humble" container: - image: "osrf/ros:humble-desktop-full" - env: - ROS_DISTRO: humble - - name: "foxy" + image: "ghcr.io/fixposition/fixposition/fixposition-sdk:humble-ci" + # env: + # ROS_DISTRO: humble + - name: "jazzy" container: - image: "osrf/ros:foxy-desktop" - env: - ROS_DISTRO: foxy + image: "ghcr.io/fixposition/fixposition/fixposition-sdk:jazzy-ci" + # env: + # ROS_DISTRO: foxy container: ${{ matrix.config.container }} @@ -33,22 +33,22 @@ jobs: shell: bash steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: path: src/fixposition_driver - name: Checkout Deps - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: fixposition/fixposition_gnss_tf - path: src/fixposition_gnss_tf + path: src/fixposition_gnss_tf - name: Set up Deps - run: | - sudo apt-get update - sudo apt-get install -y libeigen3-dev libyaml-cpp-dev libgtest-dev python3-osrf-pycommon + # run: | + # sudo apt-get update + # sudo apt-get install -y libeigen3-dev libyaml-cpp-dev libgtest-dev python3-osrf-pycommon - name: Ignore ROS1 node run: | - touch src/fixposition_driver/fixposition_driver_ros1/COLCON_IGNORE - touch src/fixposition_driver/fixposition_odometry_converter_ros1/COLCON_IGNORE + touch src/fixposition_driver/fixposition_driver_ros1/COLCON_IGNORE + touch src/fixposition_driver/fixposition_odometry_converter_ros1/COLCON_IGNORE - name: Build and Test run: | source /opt/ros/$ROS_DISTRO/setup.bash diff --git a/CHANGELOG.md b/CHANGELOG.md index e63ae65..c8d4585 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ _For questions about compatibility, please contact Fixpositions Support support@fixposition.com_ +## x.x.x + + - Remove support and CI for ROS 1 Melodic and ROS 2 Foxy + ## [6.1.3](https://github.com/fixposition/fixposition_driver/releases/tag/6.1.3) - Improve README From acbe78d134c4b0a55e62887655719a3a7fd2f8dc Mon Sep 17 00:00:00 2001 From: flipflip Date: Tue, 16 Jul 2024 21:34:31 +0200 Subject: [PATCH 2/6] fix --- .github/workflows/build_test_ros2.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_test_ros2.yml b/.github/workflows/build_test_ros2.yml index 49321d2..ab49cf5 100644 --- a/.github/workflows/build_test_ros2.yml +++ b/.github/workflows/build_test_ros2.yml @@ -41,10 +41,10 @@ jobs: with: repository: fixposition/fixposition_gnss_tf path: src/fixposition_gnss_tf - - name: Set up Deps - # run: | - # sudo apt-get update - # sudo apt-get install -y libeigen3-dev libyaml-cpp-dev libgtest-dev python3-osrf-pycommon + # - name: Set up Deps + # run: | + # sudo apt-get update + # sudo apt-get install -y libeigen3-dev libyaml-cpp-dev libgtest-dev python3-osrf-pycommon - name: Ignore ROS1 node run: | touch src/fixposition_driver/fixposition_driver_ros1/COLCON_IGNORE From e892b08febded4d68ba75f563a507ec47bfc5792 Mon Sep 17 00:00:00 2001 From: flipflip Date: Tue, 16 Jul 2024 22:34:45 +0200 Subject: [PATCH 3/6] fix? --- fixposition_driver_ros2/CMakeLists.txt | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/fixposition_driver_ros2/CMakeLists.txt b/fixposition_driver_ros2/CMakeLists.txt index dc3f7f5..e45fa3e 100644 --- a/fixposition_driver_ros2/CMakeLists.txt +++ b/fixposition_driver_ros2/CMakeLists.txt @@ -69,16 +69,11 @@ add_executable( src/data_to_ros2.cpp ) -if($ENV{ROS_DISTRO} MATCHES "humble|rolling") +if($ENV{ROS_DISTRO} MATCHES "humble|jazzy|rolling") rosidl_get_typesupport_target( cpp_typesupport_target ${PROJECT_NAME} "rosidl_typesupport_cpp" ) -elseif($ENV{ROS_DISTRO} MATCHES "galactic|foxy|eloquent|dashing") - rosidl_target_interfaces( - ${PROJECT_NAME}_exec - ${PROJECT_NAME} "rosidl_typesupport_cpp" - ) else() message(FATAL_ERROR "Unsupported ROS_DISTRO") endif() From 913c94a88b1125b9f10d6d58206c10d6b266f232 Mon Sep 17 00:00:00 2001 From: flipflip Date: Tue, 16 Jul 2024 22:41:11 +0200 Subject: [PATCH 4/6] cleanup --- .github/workflows/build_test_ros.yml | 18 ------------------ .github/workflows/build_test_ros2.yml | 8 -------- 2 files changed, 26 deletions(-) diff --git a/.github/workflows/build_test_ros.yml b/.github/workflows/build_test_ros.yml index 7b3b5a6..7c71322 100644 --- a/.github/workflows/build_test_ros.yml +++ b/.github/workflows/build_test_ros.yml @@ -15,16 +15,9 @@ jobs: fail-fast: false matrix: config: - # - name: "melodic" - # container: - # image: "osrf/ros:melodic-desktop-full" - # env: - # ROS_DISTRO: melodic - name: "noetic" container: image: "ghcr.io/fixposition/fixposition/fixposition-sdk:noetic-ci" - # env: - # ROS_DISTRO: noetic container: ${{ matrix.config.container }} @@ -41,17 +34,6 @@ jobs: with: repository: fixposition/fixposition_gnss_tf path: src/fixposition_gnss_tf - # - name: Set up Deps - # run: | - # sudo apt-get update - # sudo apt-get install -y libeigen3-dev libyaml-cpp-dev libgtest-dev python3-osrf-pycommon python3-catkin-tools - # - name: Install Gtest - # if: matrix.config.container.image == 'osrf/ros:melodic-desktop-full' - # run: | - # cd /usr/src/gtest - # sudo cmake . - # sudo make - # sudo make install - name: Ignore ROS2 node run: | touch src/fixposition_driver/fixposition_driver_ros2/CATKIN_IGNORE diff --git a/.github/workflows/build_test_ros2.yml b/.github/workflows/build_test_ros2.yml index ab49cf5..584da8b 100644 --- a/.github/workflows/build_test_ros2.yml +++ b/.github/workflows/build_test_ros2.yml @@ -18,13 +18,9 @@ jobs: - name: "humble" container: image: "ghcr.io/fixposition/fixposition/fixposition-sdk:humble-ci" - # env: - # ROS_DISTRO: humble - name: "jazzy" container: image: "ghcr.io/fixposition/fixposition/fixposition-sdk:jazzy-ci" - # env: - # ROS_DISTRO: foxy container: ${{ matrix.config.container }} @@ -41,10 +37,6 @@ jobs: with: repository: fixposition/fixposition_gnss_tf path: src/fixposition_gnss_tf - # - name: Set up Deps - # run: | - # sudo apt-get update - # sudo apt-get install -y libeigen3-dev libyaml-cpp-dev libgtest-dev python3-osrf-pycommon - name: Ignore ROS1 node run: | touch src/fixposition_driver/fixposition_driver_ros1/COLCON_IGNORE From e799676b1ed62c7f914c336dc166e871c59de3bd Mon Sep 17 00:00:00 2001 From: flipflip Date: Tue, 16 Jul 2024 22:44:22 +0200 Subject: [PATCH 5/6] cleanup --- CHANGELOG.md | 3 ++- README.md | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8d4585..4ae0c49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ _For questions about compatibility, please contact Fixpositions Support support@ ## x.x.x - - Remove support and CI for ROS 1 Melodic and ROS 2 Foxy + - Remove support and CI for ROS 1 Melodic and ROS 2 Dashing/Eloquent/Foxy/Galactic + - Do CI for Noetic, Humble and Jazzy ## [6.1.3](https://github.com/fixposition/fixposition_driver/releases/tag/6.1.3) diff --git a/README.md b/README.md index 2cb0711..14c10f8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Fixposition ROS Driver -- [ROS1 melodic / noetic ![](./../../actions/workflows/build_test_ros.yml/badge.svg)](./../../actions/workflows/build_test_ros.yml) -- [ROS2 foxy / humble ![](./../../actions/workflows/build_test_ros2.yml/badge.svg)](./../../actions/workflows/build_test_ros2.yml) +- [ROS1 Noetic ![](./../../actions/workflows/build_test_ros.yml/badge.svg)](./../../actions/workflows/build_test_ros.yml) +- [ROS2 Humble / Jazzy ![](./../../actions/workflows/build_test_ros2.yml/badge.svg)](./../../actions/workflows/build_test_ros2.yml) [ROS](https://www.ros.org/) (both ROS1 and ROS2) Driver for [Fixposition Vision-RTK 2](https://www.fixposition.com/product). @@ -122,11 +122,11 @@ Then source your environment after the build: > [!NOTE] > ROS2, unlike ROS1, by default uses a `install` directory in the workspace. So when you do `ros2 launch xxx`, the configuration and launch files are taken from the `install` and not directly from the `src` directory. -> +> > If you want to modify the parameters in the YAML files. You can: > - Modify the YAML file in the `src` directory and then re-run `colcon build --packages-up-to fixposition_driver_ros2` to update them into the `install` directory. > -> or +> or > - Modify the YAML file in `install`. However, the next time you do `colcon build` they will be overriden by the files in `src`. From 9f7519931f21600e5d8029e51407de31b3b4f1e3 Mon Sep 17 00:00:00 2001 From: flipflip Date: Thu, 18 Jul 2024 17:36:34 +0200 Subject: [PATCH 6/6] update docker image (name has changed) --- .github/workflows/build_test_ros.yml | 96 +++++++++++++------------- .github/workflows/build_test_ros2.yml | 98 +++++++++++++-------------- 2 files changed, 97 insertions(+), 97 deletions(-) diff --git a/.github/workflows/build_test_ros.yml b/.github/workflows/build_test_ros.yml index 7c71322..53b0a31 100644 --- a/.github/workflows/build_test_ros.yml +++ b/.github/workflows/build_test_ros.yml @@ -1,48 +1,48 @@ -name: Build and Test with ROS1 - -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - build: - name: ${{ matrix.config.name }} - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - config: - - name: "noetic" - container: - image: "ghcr.io/fixposition/fixposition/fixposition-sdk:noetic-ci" - - container: ${{ matrix.config.container }} - - defaults: - run: - shell: bash - - steps: - - uses: actions/checkout@v4 - with: - path: src/fixposition_driver - - name: Checkout Deps - uses: actions/checkout@v4 - with: - repository: fixposition/fixposition_gnss_tf - path: src/fixposition_gnss_tf - - name: Ignore ROS2 node - run: | - touch src/fixposition_driver/fixposition_driver_ros2/CATKIN_IGNORE - touch src/fixposition_driver/fixposition_odometry_converter_ros2/CATKIN_IGNORE - - name: Init Workspace - run: | - catkin init - - name: Build and Test - run: | - source /opt/ros/$ROS_DISTRO/setup.bash - catkin build fixposition_driver_lib fixposition_driver_ros1 fixposition_odometry_converter_ros1 --force-cmake -DBUILD_TESTING=ON - catkin run_tests +name: Build and Test with ROS1 + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + name: ${{ matrix.config.name }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + config: + - name: "noetic" + container: + image: "ghcr.io/fixposition/fixposition-sdk:noetic-ci" + + container: ${{ matrix.config.container }} + + defaults: + run: + shell: bash + + steps: + - uses: actions/checkout@v4 + with: + path: src/fixposition_driver + - name: Checkout Deps + uses: actions/checkout@v4 + with: + repository: fixposition/fixposition_gnss_tf + path: src/fixposition_gnss_tf + - name: Ignore ROS2 node + run: | + touch src/fixposition_driver/fixposition_driver_ros2/CATKIN_IGNORE + touch src/fixposition_driver/fixposition_odometry_converter_ros2/CATKIN_IGNORE + - name: Init Workspace + run: | + catkin init + - name: Build and Test + run: | + source /opt/ros/$ROS_DISTRO/setup.bash + catkin build fixposition_driver_lib fixposition_driver_ros1 fixposition_odometry_converter_ros1 --force-cmake -DBUILD_TESTING=ON + catkin run_tests diff --git a/.github/workflows/build_test_ros2.yml b/.github/workflows/build_test_ros2.yml index 584da8b..e593dee 100644 --- a/.github/workflows/build_test_ros2.yml +++ b/.github/workflows/build_test_ros2.yml @@ -1,49 +1,49 @@ -name: Build and Test with ROS2 - -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - build: - name: ${{ matrix.config.name }} - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - config: - - name: "humble" - container: - image: "ghcr.io/fixposition/fixposition/fixposition-sdk:humble-ci" - - name: "jazzy" - container: - image: "ghcr.io/fixposition/fixposition/fixposition-sdk:jazzy-ci" - - container: ${{ matrix.config.container }} - - defaults: - run: - shell: bash - - steps: - - uses: actions/checkout@v4 - with: - path: src/fixposition_driver - - name: Checkout Deps - uses: actions/checkout@v4 - with: - repository: fixposition/fixposition_gnss_tf - path: src/fixposition_gnss_tf - - name: Ignore ROS1 node - run: | - touch src/fixposition_driver/fixposition_driver_ros1/COLCON_IGNORE - touch src/fixposition_driver/fixposition_odometry_converter_ros1/COLCON_IGNORE - - name: Build and Test - run: | - source /opt/ros/$ROS_DISTRO/setup.bash - colcon build --packages-up-to fixposition_driver_ros2 --cmake-args -DBUILD_TESTING=ON - colcon test --packages-up-to fixposition_driver_ros2 - colcon test-result --test-result-base build/fixposition_gnss_tf/ +name: Build and Test with ROS2 + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + name: ${{ matrix.config.name }} + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + config: + - name: "humble" + container: + image: "ghcr.io/fixposition/fixposition-sdk:humble-ci" + - name: "jazzy" + container: + image: "ghcr.io/fixposition/fixposition-sdk:jazzy-ci" + + container: ${{ matrix.config.container }} + + defaults: + run: + shell: bash + + steps: + - uses: actions/checkout@v4 + with: + path: src/fixposition_driver + - name: Checkout Deps + uses: actions/checkout@v4 + with: + repository: fixposition/fixposition_gnss_tf + path: src/fixposition_gnss_tf + - name: Ignore ROS1 node + run: | + touch src/fixposition_driver/fixposition_driver_ros1/COLCON_IGNORE + touch src/fixposition_driver/fixposition_odometry_converter_ros1/COLCON_IGNORE + - name: Build and Test + run: | + source /opt/ros/$ROS_DISTRO/setup.bash + colcon build --packages-up-to fixposition_driver_ros2 --cmake-args -DBUILD_TESTING=ON + colcon test --packages-up-to fixposition_driver_ros2 + colcon test-result --test-result-base build/fixposition_gnss_tf/