From af20786a94081b1198e305e1ad560c5a2b5db0f4 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 15:48:57 +0900 Subject: [PATCH 01/13] fix: update agnocast environment variable naming for consistency Signed-off-by: Max SCHMELLER --- .github/workflows/build-and-test-differential.yaml | 6 +++--- .github/workflows/build-and-test.yaml | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-test-differential.yaml b/.github/workflows/build-and-test-differential.yaml index bfee62fdd..720088962 100644 --- a/.github/workflows/build-and-test-differential.yaml +++ b/.github/workflows/build-and-test-differential.yaml @@ -12,15 +12,15 @@ jobs: fail-fast: false matrix: rosdistro: [humble, jazzy] - agnocast_enabled: [0, 1] + enable_agnocast: [0, 1] exclude: - rosdistro: jazzy - agnocast_enabled: 1 # Agnocast does not yet support Jazzy + enable_agnocast: 1 # Agnocast does not yet support Jazzy env: CCACHE_DIR: /root/.ccache CC: /usr/lib/ccache/gcc CXX: /usr/lib/ccache/g++ - AGNOCAST_ENABLED: ${{ matrix.agnocast_enabled }} + ENABLE_AGNOCAST: ${{ matrix.enable_agnocast }} steps: - name: Check out repository diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index 55295fb55..d18b2f52b 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -15,16 +15,16 @@ jobs: fail-fast: false matrix: rosdistro: [humble, jazzy] - agnocast_enabled: [0, 1] + enable_agnocast: [0, 1] exclude: - rosdistro: jazzy - agnocast_enabled: 1 # Agnocast does not yet support Jazzy + enable_agnocast: 1 # Agnocast does not yet support Jazzy env: CCACHE_DIR: /root/.ccache CCACHE_SIZE: 1G # The GitHub cache action allows for 10G but the runners' disk space is limited CC: /usr/lib/ccache/gcc CXX: /usr/lib/ccache/g++ - AGNOCAST_ENABLED: ${{ matrix.agnocast_enabled }} + ENABLE_AGNOCAST: ${{ matrix.enable_agnocast }} steps: - name: Check out repository @@ -104,7 +104,7 @@ jobs: build-depends-repos: build_depends-${{ matrix.rosdistro }}.repos - name: Upload coverage to CodeCov - if: ${{ steps.test.outputs.coverage-report-files != '' && matrix.agnocast_enabled == 0 }} + if: ${{ steps.test.outputs.coverage-report-files != '' && matrix.enable_agnocast == 0 }} uses: codecov/codecov-action@v4 with: files: ${{ steps.test.outputs.coverage-report-files }} From ccc7aef8bf0746122d429745ca92124650c7c6e6 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 15:49:39 +0900 Subject: [PATCH 02/13] temp: ci trigger Signed-off-by: Max SCHMELLER --- src/nebula_hesai/nebula_hesai/src/decoder_wrapper.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/nebula_hesai/nebula_hesai/src/decoder_wrapper.cpp b/src/nebula_hesai/nebula_hesai/src/decoder_wrapper.cpp index 3382e07c6..ff9c6b6a2 100644 --- a/src/nebula_hesai/nebula_hesai/src/decoder_wrapper.cpp +++ b/src/nebula_hesai/nebula_hesai/src/decoder_wrapper.cpp @@ -46,6 +46,7 @@ HesaiDecoderWrapper::HesaiDecoderWrapper( publish_diagnostic_(make_rate_bound_status(sensor_cfg_->rotation_speed, *parent_node)), debug_publisher_(parent_node, "nebula") { + // TEMP: ci trigger if (!sensor_cfg_) { throw std::runtime_error("HesaiDecoderWrapper cannot be instantiated without a valid config!"); } From 0b8e778909902e85de80f599ffaa7d485a56512d Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 17:12:09 +0900 Subject: [PATCH 03/13] ci: modernize apt/ccache steps in build-and-test Signed-off-by: Max SCHMELLER --- .github/workflows/build-and-test.yaml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index d18b2f52b..da0c34053 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -45,15 +45,9 @@ jobs: id: get-self-packages uses: autowarefoundation/autoware-github-actions/get-self-packages@v1 - - name: Install ccache - run: sudo apt-get update && sudo apt-get install -y ccache - shell: bash + - run: ./.github/workflows/scripts/ensure-apt-up-to-date.sh + - run: ./.github/workflows/scripts/setup-ccache.sh - - name: Create ccache directory - run: | - mkdir -p ${CCACHE_DIR} - du -sh ${CCACHE_DIR} && ccache -s - shell: bash - name: Limit ccache size run: | From 0565a7c4b02a4615d26a1ae171ac0f7bc6a137dc Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 17:13:07 +0900 Subject: [PATCH 04/13] ci: add agnocast kmod/heaphook install Signed-off-by: Max SCHMELLER --- .github/workflows/scripts/setup-agnocast.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/workflows/scripts/setup-agnocast.sh diff --git a/.github/workflows/scripts/setup-agnocast.sh b/.github/workflows/scripts/setup-agnocast.sh new file mode 100644 index 000000000..be835f375 --- /dev/null +++ b/.github/workflows/scripts/setup-agnocast.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +set -e + +if [ -z "$AGNOCAST_VERSION" ]; then + echo "AGNOCAST_VERSION environment variable is not set." + exit 1 +fi + +sudo apt-get install -yqq agnocast-{kmod,heaphook}-v"${AGNOCAST_VERSION}" From 27f6afb937563c08c6e01e09c5b96e11ffa5f140 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 17:14:50 +0900 Subject: [PATCH 05/13] ci: run agnocast setup if agnocast is enabled Signed-off-by: Max SCHMELLER --- .github/workflows/build-and-test-differential.yaml | 3 +++ .github/workflows/build-and-test.yaml | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-differential.yaml b/.github/workflows/build-and-test-differential.yaml index 720088962..9fbf23979 100644 --- a/.github/workflows/build-and-test-differential.yaml +++ b/.github/workflows/build-and-test-differential.yaml @@ -21,6 +21,7 @@ jobs: CC: /usr/lib/ccache/gcc CXX: /usr/lib/ccache/g++ ENABLE_AGNOCAST: ${{ matrix.enable_agnocast }} + AGNOCAST_VERSION: 2.3.1 steps: - name: Check out repository @@ -37,6 +38,8 @@ jobs: - run: ./.github/workflows/scripts/ensure-apt-up-to-date.sh - run: ./.github/workflows/scripts/setup-ccache.sh + - run: ./.github/workflows/scripts/setup-agnocast.sh + if: matrix.enable_agnocast == '1' - uses: actions/cache@v4 with: diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index da0c34053..8762911b1 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -25,6 +25,7 @@ jobs: CC: /usr/lib/ccache/gcc CXX: /usr/lib/ccache/g++ ENABLE_AGNOCAST: ${{ matrix.enable_agnocast }} + AGNOCAST_VERSION: 2.3.1 steps: - name: Check out repository @@ -47,7 +48,8 @@ jobs: - run: ./.github/workflows/scripts/ensure-apt-up-to-date.sh - run: ./.github/workflows/scripts/setup-ccache.sh - + - run: ./.github/workflows/scripts/setup-agnocast.sh + if: matrix.enable_agnocast == '1' - name: Limit ccache size run: | From 3e3e32765483b85125c5f2f9348952378ec069b6 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 17:18:23 +0900 Subject: [PATCH 06/13] ci: add agnocast ppa Signed-off-by: Max SCHMELLER --- .github/workflows/scripts/setup-agnocast.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/scripts/setup-agnocast.sh b/.github/workflows/scripts/setup-agnocast.sh index be835f375..b4e793271 100644 --- a/.github/workflows/scripts/setup-agnocast.sh +++ b/.github/workflows/scripts/setup-agnocast.sh @@ -7,4 +7,5 @@ if [ -z "$AGNOCAST_VERSION" ]; then exit 1 fi +sudo add-apt-repository -y ppa:t4-system-software/agnocast sudo apt-get install -yqq agnocast-{kmod,heaphook}-v"${AGNOCAST_VERSION}" From 2859f51edae641ba3d5d3006ca4b54edd50c3199 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 17:31:35 +0900 Subject: [PATCH 07/13] ci: export agnocast env vars Signed-off-by: Max SCHMELLER --- .github/workflows/scripts/setup-agnocast.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/workflows/scripts/setup-agnocast.sh b/.github/workflows/scripts/setup-agnocast.sh index b4e793271..a9572a619 100644 --- a/.github/workflows/scripts/setup-agnocast.sh +++ b/.github/workflows/scripts/setup-agnocast.sh @@ -7,5 +7,24 @@ if [ -z "$AGNOCAST_VERSION" ]; then exit 1 fi +if [ -z "$ROS_DISTRO" ]; then + echo "ROS_DISTRO environment variable is not set." + exit 1 +fi + sudo add-apt-repository -y ppa:t4-system-software/agnocast sudo apt-get install -yqq agnocast-{kmod,heaphook}-v"${AGNOCAST_VERSION}" + +# Keep CI runtime defaults aligned with README.md. +AGNOCAST_MEMPOOL_SIZE="${AGNOCAST_MEMPOOL_SIZE:-134217728}" +LD_PRELOAD="/opt/ros/${ROS_DISTRO}/lib/libagnocast_heaphook.so" + +if [ ! -f "${LD_PRELOAD}" ]; then + echo "Expected heaphook library not found: ${LD_PRELOAD}" + exit 1 +fi + +{ + echo "AGNOCAST_MEMPOOL_SIZE=${AGNOCAST_MEMPOOL_SIZE}" + echo "LD_PRELOAD=${LD_PRELOAD}" +} >>"${GITHUB_ENV}" From 7827daed9a77733403ee033115de830526c1a7e2 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 17:48:59 +0900 Subject: [PATCH 08/13] ci: make setup-agnocast executable Signed-off-by: Max SCHMELLER --- .github/workflows/scripts/setup-agnocast.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .github/workflows/scripts/setup-agnocast.sh diff --git a/.github/workflows/scripts/setup-agnocast.sh b/.github/workflows/scripts/setup-agnocast.sh old mode 100644 new mode 100755 From 56b1fe165ebca4c389dacb11b87dbd50f43c8118 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 17:54:25 +0900 Subject: [PATCH 09/13] ci: fix command for adding agnocast PPA in setup script Signed-off-by: Max SCHMELLER --- .github/workflows/scripts/setup-agnocast.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scripts/setup-agnocast.sh b/.github/workflows/scripts/setup-agnocast.sh index a9572a619..3b5414c48 100755 --- a/.github/workflows/scripts/setup-agnocast.sh +++ b/.github/workflows/scripts/setup-agnocast.sh @@ -12,7 +12,7 @@ if [ -z "$ROS_DISTRO" ]; then exit 1 fi -sudo add-apt-repository -y ppa:t4-system-software/agnocast +sudo apt-add-repository -y ppa:t4-system-software/agnocast sudo apt-get install -yqq agnocast-{kmod,heaphook}-v"${AGNOCAST_VERSION}" # Keep CI runtime defaults aligned with README.md. From e731d07fe55caa40b832bba1fa1caa4980976b14 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 17:57:03 +0900 Subject: [PATCH 10/13] ci: ensure software-properties-common is installed before adding agnocast PPA Signed-off-by: Max SCHMELLER --- .github/workflows/scripts/setup-agnocast.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/scripts/setup-agnocast.sh b/.github/workflows/scripts/setup-agnocast.sh index 3b5414c48..96cc7fdeb 100755 --- a/.github/workflows/scripts/setup-agnocast.sh +++ b/.github/workflows/scripts/setup-agnocast.sh @@ -12,6 +12,7 @@ if [ -z "$ROS_DISTRO" ]; then exit 1 fi +sudo apt-get install -yqq software-properties-common sudo apt-add-repository -y ppa:t4-system-software/agnocast sudo apt-get install -yqq agnocast-{kmod,heaphook}-v"${AGNOCAST_VERSION}" From 49d3335d33d7a5cb90605b681aa49de63bef2ce2 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 17:59:53 +0900 Subject: [PATCH 11/13] ci: install linux headers alongside software-properties-common in setup script Signed-off-by: Max SCHMELLER --- .github/workflows/scripts/setup-agnocast.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scripts/setup-agnocast.sh b/.github/workflows/scripts/setup-agnocast.sh index 96cc7fdeb..a35cbe01a 100755 --- a/.github/workflows/scripts/setup-agnocast.sh +++ b/.github/workflows/scripts/setup-agnocast.sh @@ -12,7 +12,7 @@ if [ -z "$ROS_DISTRO" ]; then exit 1 fi -sudo apt-get install -yqq software-properties-common +sudo apt-get install -yqq software-properties-common linux-headers-"$(uname -r)" sudo apt-add-repository -y ppa:t4-system-software/agnocast sudo apt-get install -yqq agnocast-{kmod,heaphook}-v"${AGNOCAST_VERSION}" From 60b8556b3c248ae62b97e4f07b9e530bd0bde67a Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 18:09:42 +0900 Subject: [PATCH 12/13] ci: extract kernel flavor before installing linux headers in setup script Signed-off-by: Max SCHMELLER --- .github/workflows/scripts/setup-agnocast.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/scripts/setup-agnocast.sh b/.github/workflows/scripts/setup-agnocast.sh index a35cbe01a..cb9cbaf50 100755 --- a/.github/workflows/scripts/setup-agnocast.sh +++ b/.github/workflows/scripts/setup-agnocast.sh @@ -12,7 +12,12 @@ if [ -z "$ROS_DISTRO" ]; then exit 1 fi -sudo apt-get install -yqq software-properties-common linux-headers-"$(uname -r)" +# Extract the kernel flavor (e.g., 'azure') +# Some CI runner images do not have corresponding linux-headers packages, so we need to get the +# base/generic headers of the flavor instead. +FLAVOR=$(uname -r | sed 's/.*[0-9]-//') + +sudo apt-get install -yqq software-properties-common linux-headers-"$FLAVOR" sudo apt-add-repository -y ppa:t4-system-software/agnocast sudo apt-get install -yqq agnocast-{kmod,heaphook}-v"${AGNOCAST_VERSION}" From 89604086efd26888ec497f9cb7b3b303cb99f446 Mon Sep 17 00:00:00 2001 From: Max SCHMELLER Date: Thu, 19 Mar 2026 18:13:10 +0900 Subject: [PATCH 13/13] ci: avoid dealing with kernel modules, disable Agnocast during test time Signed-off-by: Max SCHMELLER --- .../build-and-test-differential.yaml | 5 ++- .github/workflows/build-and-test.yaml | 5 ++- .github/workflows/scripts/setup-agnocast.sh | 36 ------------------- 3 files changed, 4 insertions(+), 42 deletions(-) delete mode 100755 .github/workflows/scripts/setup-agnocast.sh diff --git a/.github/workflows/build-and-test-differential.yaml b/.github/workflows/build-and-test-differential.yaml index 9fbf23979..ce4af8d45 100644 --- a/.github/workflows/build-and-test-differential.yaml +++ b/.github/workflows/build-and-test-differential.yaml @@ -21,7 +21,6 @@ jobs: CC: /usr/lib/ccache/gcc CXX: /usr/lib/ccache/g++ ENABLE_AGNOCAST: ${{ matrix.enable_agnocast }} - AGNOCAST_VERSION: 2.3.1 steps: - name: Check out repository @@ -38,8 +37,6 @@ jobs: - run: ./.github/workflows/scripts/ensure-apt-up-to-date.sh - run: ./.github/workflows/scripts/setup-ccache.sh - - run: ./.github/workflows/scripts/setup-agnocast.sh - if: matrix.enable_agnocast == '1' - uses: actions/cache@v4 with: @@ -71,6 +68,8 @@ jobs: id: test if: steps.build.outcome == 'success' uses: autowarefoundation/autoware-github-actions/colcon-test@v1 + env: + ENABLE_AGNOCAST: 0 with: rosdistro: ${{ matrix.rosdistro }} target-packages: ${{ steps.get-modified-packages.outputs.modified-packages }} diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index 8762911b1..07416f518 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -25,7 +25,6 @@ jobs: CC: /usr/lib/ccache/gcc CXX: /usr/lib/ccache/g++ ENABLE_AGNOCAST: ${{ matrix.enable_agnocast }} - AGNOCAST_VERSION: 2.3.1 steps: - name: Check out repository @@ -48,8 +47,6 @@ jobs: - run: ./.github/workflows/scripts/ensure-apt-up-to-date.sh - run: ./.github/workflows/scripts/setup-ccache.sh - - run: ./.github/workflows/scripts/setup-agnocast.sh - if: matrix.enable_agnocast == '1' - name: Limit ccache size run: | @@ -94,6 +91,8 @@ jobs: if: ${{ steps.get-self-packages.outputs.self-packages != '' }} id: test uses: autowarefoundation/autoware-github-actions/colcon-test@v1 + env: + ENABLE_AGNOCAST: 0 with: rosdistro: ${{ matrix.rosdistro }} target-packages: ${{ steps.get-self-packages.outputs.self-packages }} diff --git a/.github/workflows/scripts/setup-agnocast.sh b/.github/workflows/scripts/setup-agnocast.sh deleted file mode 100755 index cb9cbaf50..000000000 --- a/.github/workflows/scripts/setup-agnocast.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash - -set -e - -if [ -z "$AGNOCAST_VERSION" ]; then - echo "AGNOCAST_VERSION environment variable is not set." - exit 1 -fi - -if [ -z "$ROS_DISTRO" ]; then - echo "ROS_DISTRO environment variable is not set." - exit 1 -fi - -# Extract the kernel flavor (e.g., 'azure') -# Some CI runner images do not have corresponding linux-headers packages, so we need to get the -# base/generic headers of the flavor instead. -FLAVOR=$(uname -r | sed 's/.*[0-9]-//') - -sudo apt-get install -yqq software-properties-common linux-headers-"$FLAVOR" -sudo apt-add-repository -y ppa:t4-system-software/agnocast -sudo apt-get install -yqq agnocast-{kmod,heaphook}-v"${AGNOCAST_VERSION}" - -# Keep CI runtime defaults aligned with README.md. -AGNOCAST_MEMPOOL_SIZE="${AGNOCAST_MEMPOOL_SIZE:-134217728}" -LD_PRELOAD="/opt/ros/${ROS_DISTRO}/lib/libagnocast_heaphook.so" - -if [ ! -f "${LD_PRELOAD}" ]; then - echo "Expected heaphook library not found: ${LD_PRELOAD}" - exit 1 -fi - -{ - echo "AGNOCAST_MEMPOOL_SIZE=${AGNOCAST_MEMPOOL_SIZE}" - echo "LD_PRELOAD=${LD_PRELOAD}" -} >>"${GITHUB_ENV}"