From f9eb6dd19790cd2de3c0870eebb8dbb843770c76 Mon Sep 17 00:00:00 2001 From: Carlosespicur Date: Mon, 22 Sep 2025 09:04:27 +0000 Subject: [PATCH 1/5] Add CI and nightly for each distro Signed-off-by: Carlosespicur --- .github/workflows/humble-ci.yml | 16 ++++++++ .github/workflows/jazzy-ci.yml | 16 ++++++++ .github/workflows/kilted-ci.yml | 16 ++++++++ .github/workflows/nightly-ci.yml | 36 ++++++++++++++++++ .github/workflows/reusable-ci.yml | 61 +++++++++++++++++++++++++++++++ .github/workflows/rolling-ci.yml | 16 ++++++++ 6 files changed, 161 insertions(+) create mode 100644 .github/workflows/humble-ci.yml create mode 100644 .github/workflows/jazzy-ci.yml create mode 100644 .github/workflows/kilted-ci.yml create mode 100644 .github/workflows/nightly-ci.yml create mode 100644 .github/workflows/reusable-ci.yml create mode 100644 .github/workflows/rolling-ci.yml diff --git a/.github/workflows/humble-ci.yml b/.github/workflows/humble-ci.yml new file mode 100644 index 00000000..53a458c9 --- /dev/null +++ b/.github/workflows/humble-ci.yml @@ -0,0 +1,16 @@ +name: rcutils CI Humble + +on: + push: + branches: [ humble ] + pull_request: + branches: [ humble ] + +jobs: + humble-ci: + uses: ./.github/workflows/reusable-ci.yml + with: + branch: ${{ github.ref }} + os: ubuntu-22.04 + docker-image: ubuntu:jammy + ros-distribution: humble diff --git a/.github/workflows/jazzy-ci.yml b/.github/workflows/jazzy-ci.yml new file mode 100644 index 00000000..46af6759 --- /dev/null +++ b/.github/workflows/jazzy-ci.yml @@ -0,0 +1,16 @@ +name: rcutils CI Jazzy + +on: + push: + branches: [ jazzy ] + pull_request: + branches: [ jazzy ] + +jobs: + jazzy-ci: + uses: ./.github/workflows/reusable-ci.yml + with: + branch: ${{ github.ref }} + os: ubuntu-24.04 + docker-image: ubuntu:noble + ros-distribution: jazzy diff --git a/.github/workflows/kilted-ci.yml b/.github/workflows/kilted-ci.yml new file mode 100644 index 00000000..1523d5ab --- /dev/null +++ b/.github/workflows/kilted-ci.yml @@ -0,0 +1,16 @@ +name: rcutils CI Kilted + +on: + push: + branches: [ kilted ] + pull_request: + branches: [ kilted ] + +jobs: + kilted-ci: + uses: ./.github/workflows/reusable-ci.yml + with: + branch: ${{ github.ref }} + os: ubuntu-24.04 + docker-image: ubuntu:noble + ros-distribution: kilted diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml new file mode 100644 index 00000000..28ad870b --- /dev/null +++ b/.github/workflows/nightly-ci.yml @@ -0,0 +1,36 @@ +name: rcutils nightly CI (all distributions) + +on: + schedule: + # Run once per day to detect broken dependencies. + - cron: '59 23 * * *' + +jobs: + humble-ci: + uses: ./.github/workflows/reusable-ci.yml + with: + branch: humble + os: ubuntu-22.04 + docker-image: ubuntu:jammy + ros-distribution: humble + jazzy-ci: + uses: ./.github/workflows/reusable-ci.yml + with: + branch: jazzy + os: ubuntu-24.04 + docker-image: ubuntu:noble + ros-distribution: jazzy + kilted-ci: + uses: ./.github/workflows/reusable-ci.yml + with: + branch: kilted + os: ubuntu-24.04 + docker-image: ubuntu:noble + ros-distribution: kilted + rolling-ci: + uses: ./.github/workflows/reusable-ci.yml + with: + branch: rolling + os: ubuntu-24.04 + docker-image: ubuntu:noble + ros-distribution: rolling diff --git a/.github/workflows/reusable-ci.yml b/.github/workflows/reusable-ci.yml new file mode 100644 index 00000000..5f48d18b --- /dev/null +++ b/.github/workflows/reusable-ci.yml @@ -0,0 +1,61 @@ +name: Reusable rcutils CI + +on: + workflow_call: + inputs: + branch: + description: "The rcutils branch to use for the workflow" + required: true + type: string + os: + description: "The OS to use for the workflow" + required: true + type: string + docker-image: + description: "The docker image to use for the workflow" + required: true + type: string + ros-distribution: + description: "The ROS distribution to use for the workflow" + required: true + type: string + +jobs: + build: + runs-on: ${{ inputs.os }} + strategy: + fail-fast: false + container: + image: ${{ inputs.docker-image }} + steps: + + - name: Sync repository + uses: actions/checkout@v5 + with: + ref: ${{ inputs.branch }} + submodules: recursive + + - name: Setup ROS 2 + uses: ros-tooling/setup-ros@0.7.15 + with: + required-ros-distributions: ${{ inputs.ros-distribution }} + + - name : Download and install rcutils-dependencies + run: | + apt-get install ros-${{ inputs.ros-distribution }}-mimick-vendor + apt-get -y install ros-${{ inputs.ros-distribution }}-performance-test-fixture + + - uses : ros-tooling/action-ros-ci@0.4.5 + with: + package-name: "rcutils" + target-ros2-distro: ${{ inputs.ros-distribution }} + colcon-defaults: | + { + "build": { + "mixin": [ "coverage-gcc" ] + } + } + colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml + - uses: codecov/codecov-action@v1 + with: + file: ros_ws/lcov/total_coverage.info diff --git a/.github/workflows/rolling-ci.yml b/.github/workflows/rolling-ci.yml new file mode 100644 index 00000000..2bd01d91 --- /dev/null +++ b/.github/workflows/rolling-ci.yml @@ -0,0 +1,16 @@ +name: rcutils CI Rolling + +on: + push: + branches: [ rolling ] + pull_request: + branches: [ rolling ] + +jobs: + rolling-ci: + uses: ./.github/workflows/reusable-ci.yml + with: + branch: ${{ github.ref }} + os: ubuntu-24.04 + docker-image: ubuntu:noble + ros-distribution: rolling From 622f02c03dfb8ed73c800a0fbf50259f1fafc4c2 Mon Sep 17 00:00:00 2001 From: Carlosespicur Date: Mon, 22 Sep 2025 09:08:53 +0000 Subject: [PATCH 2/5] Update git version Signed-off-by: Carlosespicur --- .github/workflows/reusable-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/reusable-ci.yml b/.github/workflows/reusable-ci.yml index 5f48d18b..6c377061 100644 --- a/.github/workflows/reusable-ci.yml +++ b/.github/workflows/reusable-ci.yml @@ -29,6 +29,10 @@ jobs: image: ${{ inputs.docker-image }} steps: + - run: | + apt-get update && apt-get install -y git + shell: bash + - name: Sync repository uses: actions/checkout@v5 with: From 3576b96cc3e70a7e76d9c6ccd11811491e4baa49 Mon Sep 17 00:00:00 2001 From: Carlosespicur Date: Mon, 22 Sep 2025 13:46:08 +0000 Subject: [PATCH 3/5] Skip tests Signed-off-by: Carlosespicur --- .github/workflows/reusable-ci.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/reusable-ci.yml b/.github/workflows/reusable-ci.yml index 6c377061..1ac5f175 100644 --- a/.github/workflows/reusable-ci.yml +++ b/.github/workflows/reusable-ci.yml @@ -53,13 +53,4 @@ jobs: with: package-name: "rcutils" target-ros2-distro: ${{ inputs.ros-distribution }} - colcon-defaults: | - { - "build": { - "mixin": [ "coverage-gcc" ] - } - } - colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml - - uses: codecov/codecov-action@v1 - with: - file: ros_ws/lcov/total_coverage.info + skip-tests: true From c196d0813376d885971fb4e09b283133ca5385ae Mon Sep 17 00:00:00 2001 From: Carlos Espinoza Curto <148376273+Carlosespicur@users.noreply.github.com> Date: Tue, 23 Sep 2025 07:27:36 +0200 Subject: [PATCH 4/5] Change nightly to weekly --- .github/workflows/{nightly-ci.yml => weekly-ci.yml} | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) rename .github/workflows/{nightly-ci.yml => weekly-ci.yml} (83%) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/weekly-ci.yml similarity index 83% rename from .github/workflows/nightly-ci.yml rename to .github/workflows/weekly-ci.yml index 28ad870b..15fe99bd 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/weekly-ci.yml @@ -1,9 +1,10 @@ -name: rcutils nightly CI (all distributions) +name: rcutils weekly CI (all distributions) on: schedule: - # Run once per day to detect broken dependencies. - - cron: '59 23 * * *' + # Run once per week to detect broken dependencies. + - cron: '59 23 * * 0' + workflow_dispatch: jobs: humble-ci: From 885c426523485c214345b7633eacbb4935a22d6f Mon Sep 17 00:00:00 2001 From: Carlosespicur Date: Wed, 24 Sep 2025 08:10:21 +0000 Subject: [PATCH 5/5] Change master to rolling in fork checker Signed-off-by: Carlosespicur --- .github/workflows/fork_checker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/fork_checker.yml b/.github/workflows/fork_checker.yml index 1d917918..67fe8668 100644 --- a/.github/workflows/fork_checker.yml +++ b/.github/workflows/fork_checker.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - branches: [humble, jazzy, kilted, master] + branches: [humble, jazzy, kilted, rolling] steps: - name: Check id: check