From cb528ebaacda07548e0645ea6f6f7875286ee631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20Fr=C3=B6hlich?= Date: Thu, 9 May 2024 00:37:19 +0200 Subject: [PATCH] [CI] Add jazzy :rocket: (#165) * Add jazzy jobs * Add jazzy to readme * Add jazzy for debian * Add RHEL jazzy workflow * Remove semi-binary job and empty repos files * Fix rhel+debian * Update upstream pre-commit wf * Use ros: container for coverage build * Sort the distros --- .github/workflows/README.md | 9 +------ .github/workflows/abi-compatibility.yml | 2 +- .github/workflows/binary-build.yml | 3 +-- .github/workflows/ci-coverage-build.yml | 1 - .github/workflows/ci-pre-commit.yml | 9 +------ .github/workflows/debian-build.yml | 3 +-- .github/workflows/rhel-semi-binary-build.yml | 3 +-- .github/workflows/semi-binary-build.yml | 28 -------------------- .github/workflows/source-build.yml | 28 +++++++++++--------- README.md | 15 +++-------- realtime_tools-not-released.humble.repos | 6 ----- realtime_tools-not-released.iron.repos | 6 ----- realtime_tools-not-released.rolling.repos | 6 ----- realtime_tools.humble.repos | 6 ----- realtime_tools.iron.repos | 6 ----- realtime_tools.rolling.repos | 6 ----- 16 files changed, 24 insertions(+), 113 deletions(-) delete mode 100644 .github/workflows/semi-binary-build.yml delete mode 100644 realtime_tools-not-released.humble.repos delete mode 100644 realtime_tools-not-released.iron.repos delete mode 100644 realtime_tools-not-released.rolling.repos delete mode 100644 realtime_tools.humble.repos delete mode 100644 realtime_tools.iron.repos delete mode 100644 realtime_tools.rolling.repos diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 148ccb0d..57f5e83f 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -2,7 +2,7 @@ ROS2 Distro | Branch | Build status | Documentation | Released packages :---------: | :----: | :----------: | :-----------: | :---------------: -**Rolling**
**Iron**
**Humble** | [`rolling`](https://github.com/ros-controls/realtime_tools/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/semi-binary-build.yml?branch=master)
[![Rolling Source Build](https://github.com/ros-controls/realtime_tools/actions/workflows/source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/source-build.yml?branch=master) | [API](http://docs.ros.org/en/rolling/p/realtime_tools/) | [realtime_tools](https://index.ros.org/p/realtime_tools/#rolling) +**Rolling**
**Jazzy**
**Iron**
**Humble** | [`master`](https://github.com/ros-controls/realtime_tools/tree/master) | [![Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml?branch=master)
[![Source Build](https://github.com/ros-controls/realtime_tools/actions/workflows/source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/source-build.yml?branch=master) | [API](http://docs.ros.org/en/rolling/p/realtime_tools/) | [realtime_tools](https://index.ros.org/p/realtime_tools/#rolling) @@ -14,11 +14,4 @@ ROS2 Distro | Branch | Build status | Documentation | Released packages 1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible. - Uses repos file: `$NAME$-not-released..repos` - -1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source. - Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build. - - Uses repos file: `$NAME$.repos` - 1. Source build - also core ROS packages are build from source. It shows potential issues in the mid future. diff --git a/.github/workflows/abi-compatibility.yml b/.github/workflows/abi-compatibility.yml index 97f168c7..b1207bbc 100644 --- a/.github/workflows/abi-compatibility.yml +++ b/.github/workflows/abi-compatibility.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - ROS_DISTRO: [rolling, iron, humble] + ROS_DISTRO: [humble, iron, jazzy, rolling] steps: - uses: actions/checkout@v4 - uses: ros-industrial/industrial_ci@master diff --git a/.github/workflows/binary-build.yml b/.github/workflows/binary-build.yml index 317ed943..446acc62 100644 --- a/.github/workflows/binary-build.yml +++ b/.github/workflows/binary-build.yml @@ -20,10 +20,9 @@ jobs: strategy: fail-fast: false matrix: - ROS_DISTRO: [rolling, iron, humble] + ROS_DISTRO: [humble, iron, jazzy, rolling] ROS_REPO: [main, testing] with: ros_distro: ${{ matrix.ROS_DISTRO }} ros_repo: ${{ matrix.ROS_REPO }} - upstream_workspace: realtime_tools-not-released.${{ matrix.ROS_DISTRO }}.repos ref_for_scheduled_build: master diff --git a/.github/workflows/ci-coverage-build.yml b/.github/workflows/ci-coverage-build.yml index 2aa8606c..5a5cc611 100644 --- a/.github/workflows/ci-coverage-build.yml +++ b/.github/workflows/ci-coverage-build.yml @@ -15,4 +15,3 @@ jobs: secrets: inherit with: ros_distro: rolling - container: ubuntu:24.04 diff --git a/.github/workflows/ci-pre-commit.yml b/.github/workflows/ci-pre-commit.yml index adb6694b..0d886e70 100644 --- a/.github/workflows/ci-pre-commit.yml +++ b/.github/workflows/ci-pre-commit.yml @@ -12,13 +12,6 @@ jobs: strategy: fail-fast: false matrix: - ROS_DISTRO: [iron, humble] + ROS_DISTRO: [humble, iron, jazzy, rolling] with: ros_distro: ${{ matrix.ROS_DISTRO }} - os_name: ubuntu-22.04 - - pre-commit-rolling: - uses: ros-controls/ros2_control_ci/.github/workflows/reusable-pre-commit.yml@master - with: - ros_distro: rolling - container: ubuntu:24.04 diff --git a/.github/workflows/debian-build.yml b/.github/workflows/debian-build.yml index 741bd1c4..c556287c 100644 --- a/.github/workflows/debian-build.yml +++ b/.github/workflows/debian-build.yml @@ -15,8 +15,7 @@ jobs: strategy: fail-fast: false matrix: - ROS_DISTRO: [rolling, iron, humble] + ROS_DISTRO: [humble, iron, jazzy, rolling] with: ros_distro: ${{ matrix.ROS_DISTRO }} - upstream_workspace: realtime_tools.${{ matrix.ROS_DISTRO }}.repos ref_for_scheduled_build: master diff --git a/.github/workflows/rhel-semi-binary-build.yml b/.github/workflows/rhel-semi-binary-build.yml index 6ec6399b..10f22ffe 100644 --- a/.github/workflows/rhel-semi-binary-build.yml +++ b/.github/workflows/rhel-semi-binary-build.yml @@ -15,8 +15,7 @@ jobs: strategy: fail-fast: false matrix: - ROS_DISTRO: [rolling, iron, humble] + ROS_DISTRO: [humble, iron, jazzy, rolling] with: ros_distro: ${{ matrix.ROS_DISTRO }} - upstream_workspace: realtime_tools.${{ matrix.ROS_DISTRO }}.repos ref_for_scheduled_build: master diff --git a/.github/workflows/semi-binary-build.yml b/.github/workflows/semi-binary-build.yml deleted file mode 100644 index 532ff9e2..00000000 --- a/.github/workflows/semi-binary-build.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Semi-Binary Build -# description: 'Build & test that compiles the main dependencies from source.' - -on: - workflow_dispatch: - pull_request: - branches: - - master - push: - branches: - - master - schedule: - # Run every morning to detect flakiness and broken dependencies - - cron: '33 1 * * *' - -jobs: - semi_binary: - uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master - strategy: - fail-fast: false - matrix: - ROS_DISTRO: [rolling, iron, humble] - ROS_REPO: [main, testing] - with: - ros_distro: ${{ matrix.ROS_DISTRO }} - ros_repo: ${{ matrix.ROS_REPO }} - upstream_workspace: realtime_tools.${{ matrix.ROS_DISTRO }}.repos - ref_for_scheduled_build: master diff --git a/.github/workflows/source-build.yml b/.github/workflows/source-build.yml index 0ec32c79..95985948 100644 --- a/.github/workflows/source-build.yml +++ b/.github/workflows/source-build.yml @@ -14,20 +14,22 @@ jobs: strategy: fail-fast: false matrix: - ROS_DISTRO: [iron, humble] + include: + - ROS_DISTRO: humble + CONTAINER: "" + OS_NAME: ubuntu-22.04 + - ROS_DISTRO: iron + CONTAINER: "" + OS_NAME: ubuntu-22.04 + - ROS_DISTRO: jazzy + CONTAINER: ubuntu:24.04 + OS_NAME: ubuntu-latest + - ROS_DISTRO: rolling + CONTAINER: ubuntu:24.04 + OS_NAME: ubuntu-latest with: ros_distro: ${{ matrix.ROS_DISTRO }} ref: master ros2_repo_branch: ${{ matrix.ROS_DISTRO }} - os_name: ubuntu-22.04 - source-rolling: - uses: ros-controls/ros2_control_ci/.github/workflows/reusable-ros-tooling-source-build.yml@master - strategy: - fail-fast: false - matrix: - ROS_DISTRO: [rolling] - with: - ros_distro: ${{ matrix.ROS_DISTRO }} - ref: master - ros2_repo_branch: ${{ matrix.ROS_DISTRO }} - container: ubuntu:24.04 + os_name: ${{ matrix.OS_NAME }} + container: ${{ matrix.CONTAINER }} diff --git a/README.md b/README.md index 1c0a65f7..4428aba8 100644 --- a/README.md +++ b/README.md @@ -8,27 +8,18 @@ Contains a set of tools that can be used from a hard realtime thread, without br ## Build status ROS2 Distro | Branch | Build status | Documentation | Released packages :---------: | :----: | :----------: | :-----------: | :---------------: -**Rolling** | [`master`](https://github.com/ros-controls/realtime_tools/tree/master) | [![Rolling Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/semi-binary-build.yml?branch=master) | [API](http://docs.ros.org/en/rolling/p/realtime_tools/) | [realtime_tools](https://index.ros.org/p/realtime_tools/#rolling) +**Rolling** | [`master`](https://github.com/ros-controls/realtime_tools/tree/master) | [![Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/binary-build.yml?branch=master)
[![Source Build](https://github.com/ros-controls/realtime_tools/actions/workflows/source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/source-build.yml?branch=master) | [API](http://docs.ros.org/en/rolling/p/realtime_tools/) | [realtime_tools](https://index.ros.org/p/realtime_tools/#rolling) +**Jazzy** | [`master`](https://github.com/ros-controls/realtime_tools/tree/master) | see above | [API](http://docs.ros.org/en/jazzy/p/realtime_tools/) | [realtime_tools](https://index.ros.org/p/realtime_tools/#jazzy) **Iron** | [`master`](https://github.com/ros-controls/realtime_tools/tree/master) | see above | [API](http://docs.ros.org/en/iron/p/realtime_tools/) | [realtime_tools](https://index.ros.org/p/realtime_tools/#iron) **Humble** | [`master`](https://github.com/ros-controls/realtime_tools/tree/master) | see above | [API](http://docs.ros.org/en/humble/p/realtime_tools/) | [realtime_tools](https://index.ros.org/p/realtime_tools/#humble) ### Explanation of different build types -**NOTE**: There are three build stages checking current and future compatibility of the package. +**NOTE**: There are different build stages checking current and future compatibility of the package. [Detailed build status](.github/workflows/README.md) -1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible. - - Uses repos file: `$NAME$-not-released..repos` - -1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source. - Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build. - - Uses repos file: `$NAME$.repos` - - ## Publication If you find this work useful please give credits to the authors by citing: diff --git a/realtime_tools-not-released.humble.repos b/realtime_tools-not-released.humble.repos deleted file mode 100644 index 1b3910e7..00000000 --- a/realtime_tools-not-released.humble.repos +++ /dev/null @@ -1,6 +0,0 @@ -repositories: - ## EXAMPLE DEPENDENCY -# : -# type: git -# url: git@github.com:/.git -# version: master diff --git a/realtime_tools-not-released.iron.repos b/realtime_tools-not-released.iron.repos deleted file mode 100644 index 1b3910e7..00000000 --- a/realtime_tools-not-released.iron.repos +++ /dev/null @@ -1,6 +0,0 @@ -repositories: - ## EXAMPLE DEPENDENCY -# : -# type: git -# url: git@github.com:/.git -# version: master diff --git a/realtime_tools-not-released.rolling.repos b/realtime_tools-not-released.rolling.repos deleted file mode 100644 index 1b3910e7..00000000 --- a/realtime_tools-not-released.rolling.repos +++ /dev/null @@ -1,6 +0,0 @@ -repositories: - ## EXAMPLE DEPENDENCY -# : -# type: git -# url: git@github.com:/.git -# version: master diff --git a/realtime_tools.humble.repos b/realtime_tools.humble.repos deleted file mode 100644 index 1b3910e7..00000000 --- a/realtime_tools.humble.repos +++ /dev/null @@ -1,6 +0,0 @@ -repositories: - ## EXAMPLE DEPENDENCY -# : -# type: git -# url: git@github.com:/.git -# version: master diff --git a/realtime_tools.iron.repos b/realtime_tools.iron.repos deleted file mode 100644 index 1b3910e7..00000000 --- a/realtime_tools.iron.repos +++ /dev/null @@ -1,6 +0,0 @@ -repositories: - ## EXAMPLE DEPENDENCY -# : -# type: git -# url: git@github.com:/.git -# version: master diff --git a/realtime_tools.rolling.repos b/realtime_tools.rolling.repos deleted file mode 100644 index 1b3910e7..00000000 --- a/realtime_tools.rolling.repos +++ /dev/null @@ -1,6 +0,0 @@ -repositories: - ## EXAMPLE DEPENDENCY -# : -# type: git -# url: git@github.com:/.git -# version: master