From e364f091e9bea2f4bab831d3833cd2196d3f74e2 Mon Sep 17 00:00:00 2001 From: Yadunund Date: Sun, 17 Mar 2024 00:04:25 +0800 Subject: [PATCH 01/18] Include iron in distirbution matrix Signed-off-by: Yadunund --- .github/workflows/build.yaml | 7 ++++--- .github/workflows/reusable_asan.yaml | 8 ++++++-- .github/workflows/reusable_build.yaml | 2 ++ 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 09d844b..b035012 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -7,10 +7,11 @@ on: jobs: build_and_test: - name: rmf_traffic_editor + name: test_ci uses: ./.github/workflows/reusable_build.yaml with: # NOTE: Avoid adding comments in the packages lines, this can break some of the called scripts in github actions - # NOTE: Using rmf_utils just for workflow testing porposes + # NOTE: Build upto rmf_fleet_adapter_python and rmf_visualization to cover all core open-rmf packages. packages: | - rmf_utils + rmf_fleet_adapter_python + rmf_visualization diff --git a/.github/workflows/reusable_asan.yaml b/.github/workflows/reusable_asan.yaml index c17b218..3f4095e 100644 --- a/.github/workflows/reusable_asan.yaml +++ b/.github/workflows/reusable_asan.yaml @@ -11,8 +11,12 @@ on: required: false type: string default: | - [{"ros_distribution": "foxy", - "ubuntu_distribution": "focal"}] + [{"ros_distribution": "humble", + "ubuntu_distribution": "jammy"}, + {"ros_distribution": "iron", + "ubuntu_distribution": "jammy"}, + {"ros_distribution": "rolling", + "ubuntu_distribution": "jammy"}] defaults: run: shell: bash diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 671be61..e4a4bb5 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -17,6 +17,8 @@ on: default: | [{"ros_distribution": "humble", "ubuntu_distribution": "jammy"}, + {"ros_distribution": "iron", + "ubuntu_distribution": "jammy"}, {"ros_distribution": "rolling", "ubuntu_distribution": "jammy"}] defaults: From 21159afbb3003c3a138aa0e2e53d706483d7cc98 Mon Sep 17 00:00:00 2001 From: Yadunund Date: Sun, 17 Mar 2024 00:58:40 +0800 Subject: [PATCH 02/18] Cleanup Signed-off-by: Yadunund --- .github/workflows/reusable_build.yaml | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index e4a4bb5..46e401f 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -33,25 +33,16 @@ jobs: fail-fast: false matrix: include: ${{ fromJson(inputs.dist-matrix) }} - name: Build and test runs-on: ubuntu-latest container: # TODO: check if "desktop" is really needed for the builds or tests - image: osrf/ros:${{ matrix.ros_distribution }}-desktop-${{ matrix.ubuntu_distribution }} + image: osrf/ros:${{ matrix.ros_distribution }}-desktop-full-${{ matrix.ubuntu_distribution }} steps: + - name: Setup ROS + uses: ros-tooling/setup-ros@v0.7 - name: install_clang_and_tools run: sudo apt update && sudo apt install -y clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov - # TODO: Remove this step when the incompatibility between libunwind14 and libundind dissapears https://github.com/open-rmf/rmf_traffic_editor/issues/439 - - name: Horrible hack for libceres - run: | - apt-get remove -y --purge libc++-dev || true - apt-get remove -y --purge libc++abi-dev || true - apt-get remove -y --purge libunwind-14-dev || true - apt-get remove -y --purge libunwind-14-dev || true - apt-get remove -y --purge libunwind-dev || true - apt -y autoremove - if: ${{ matrix.ubuntu_distribution == 'jammy'}} - name: create_blacklist run: | mkdir -p ${{ github.workspace }}/ @@ -70,7 +61,7 @@ jobs: echo 'colcon_defaults={"build":{"mixin":["tsan"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"]}}' >> $GITHUB_OUTPUT ;; *) - echo 'colcon_defaults={"build": {"mixin": ["coverage-gcc", "lld" ]}}' >> $GITHUB_OUTPUT + echo 'colcon_defaults={"build": {"mixin": ["coverage-gcc", "lld"]}}' >> $GITHUB_OUTPUT ;; esac - name: build_and_test From e90c0c4f0a76d80050bc3b53822b290e4838ec3a Mon Sep 17 00:00:00 2001 From: Yadunund Date: Sun, 17 Mar 2024 23:08:50 +0800 Subject: [PATCH 03/18] Use ccache for builds Signed-off-by: Yadunund --- .github/workflows/reusable_build.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 46e401f..67f3fe5 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -42,7 +42,7 @@ jobs: - name: Setup ROS uses: ros-tooling/setup-ros@v0.7 - name: install_clang_and_tools - run: sudo apt update && sudo apt install -y clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov + run: sudo apt update && sudo apt install -y ccache clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov - name: create_blacklist run: | mkdir -p ${{ github.workspace }}/ @@ -61,9 +61,13 @@ jobs: echo 'colcon_defaults={"build":{"mixin":["tsan"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"]}}' >> $GITHUB_OUTPUT ;; *) - echo 'colcon_defaults={"build": {"mixin": ["coverage-gcc", "lld"]}}' >> $GITHUB_OUTPUT + echo 'colcon_defaults={"build": {"mixin": ["ccache", "coverage-gcc", "lld"]}}' >> $GITHUB_OUTPUT ;; esac + - uses: actions/cache@v3 + with: + path: ~/.cache/ccache + key: ccache - name: build_and_test uses: ros-tooling/action-ros-ci@v0.3 env: From b28c7ec3c4127074a56ae15e966f946690f0235f Mon Sep 17 00:00:00 2001 From: Yadunund Date: Sun, 17 Mar 2024 23:25:34 +0800 Subject: [PATCH 04/18] rolling on noble Signed-off-by: Yadunund --- .github/workflows/reusable_asan.yaml | 2 +- .github/workflows/reusable_build.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable_asan.yaml b/.github/workflows/reusable_asan.yaml index 3f4095e..41ebee0 100644 --- a/.github/workflows/reusable_asan.yaml +++ b/.github/workflows/reusable_asan.yaml @@ -16,7 +16,7 @@ on: {"ros_distribution": "iron", "ubuntu_distribution": "jammy"}, {"ros_distribution": "rolling", - "ubuntu_distribution": "jammy"}] + "ubuntu_distribution": "noble"}] defaults: run: shell: bash diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 67f3fe5..e5ca5a6 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -20,7 +20,7 @@ on: {"ros_distribution": "iron", "ubuntu_distribution": "jammy"}, {"ros_distribution": "rolling", - "ubuntu_distribution": "jammy"}] + "ubuntu_distribution": "noble"}] defaults: run: shell: bash From b9802a4ff8291ef78ec5f965c81f838fde04fd4b Mon Sep 17 00:00:00 2001 From: Yadunund Date: Mon, 22 Apr 2024 14:25:50 +0800 Subject: [PATCH 05/18] Reusable asan invokes reusable build with asan mixin Signed-off-by: Yadunund --- .github/workflows/asan.yaml | 17 +++++++ .github/workflows/reusable_asan.yaml | 72 ++-------------------------- 2 files changed, 22 insertions(+), 67 deletions(-) create mode 100644 .github/workflows/asan.yaml diff --git a/.github/workflows/asan.yaml b/.github/workflows/asan.yaml new file mode 100644 index 0000000..383379b --- /dev/null +++ b/.github/workflows/asan.yaml @@ -0,0 +1,17 @@ +name: asan +on: + pull_request: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: + +jobs: + build_and_test_asan: + name: test_ci_asan + uses: ./.github/workflows/reusable_asan.yaml + with: + # NOTE: Avoid adding comments in the packages lines, this can break some of the called scripts in github actions + # NOTE: Build upto rmf_fleet_adapter_python and rmf_visualization to cover all core open-rmf packages. + packages: | + rmf_fleet_adapter_python + rmf_visualization diff --git a/.github/workflows/reusable_asan.yaml b/.github/workflows/reusable_asan.yaml index 41ebee0..59106f8 100644 --- a/.github/workflows/reusable_asan.yaml +++ b/.github/workflows/reusable_asan.yaml @@ -17,73 +17,11 @@ on: "ubuntu_distribution": "jammy"}, {"ros_distribution": "rolling", "ubuntu_distribution": "noble"}] -defaults: - run: - shell: bash -concurrency: - group: ${{ github.head_ref || github.ref_name }} - cancel-in-progress: true jobs: asan: - strategy: - fail-fast: false - matrix: - include: ${{ fromJson(inputs.dist-matrix) }} name: asan - runs-on: ubuntu-20.04 - container: - image: osrf/ros:${{ matrix.ros_distribution }}-desktop-${{ matrix.ubuntu_distribution }} - steps: - - name: install_clang_and_tools - run: sudo apt update && sudo apt install -y clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov - # TODO: fix for cryptography>2.8 failing in galactic https://github.com/open-rmf/rmf/pull/202#pullrequestreview-1100045417 - - name: fix cryptography==2.8 # https://github.com/open-rmf/rmf/pull/202#pullrequestreview-1100045417 - run: pip3 install cryptography==2.8 - if: ${{ matrix.ros_distribution == 'galactic' || matrix.ros_distribution == 'foxy' }} - # TODO: remove this when uncrustify 0.72 is fixed https://github.com/uncrustify/uncrustify/issues/3191 - - name: hack for uncrustify 0.72 problems - run: wget http://mirrors.kernel.org/ubuntu/pool/universe/u/uncrustify/uncrustify_0.69.0+dfsg1-1build1_amd64.deb && dpkg -i uncrustify_0.69.0+dfsg1-1build1_amd64.deb && apt install -f -y - if: ${{ matrix.ubuntu_distribution == 'jammy'}} - # TODO: Remove this step when the incompatibility between libunwind14 and libundind dissapears https://github.com/open-rmf/rmf_traffic_editor/issues/439 - - name: Horrible hack for libceres - run: | - apt-get remove -y --purge libc++-dev || true - apt-get remove -y --purge libc++abi-dev || true - apt-get remove -y --purge libunwind-14-dev || true - apt-get remove -y --purge libunwind-14-dev || true - apt-get remove -y --purge libunwind-dev || true - apt -y autoremove - if: ${{ matrix.ubuntu_distribution == 'jammy'}} - - name: create_blacklist - run: | - mkdir -p ${{ github.workspace }}/ - touch ${{ github.workspace }}/blacklist.txt - echo "fun:*Eigen*" > ${{ github.workspace }}/blacklist.txt - - name: asan_build_and_test - uses: ros-tooling/action-ros-ci@v0.3 - env: - LANG: en_US.UTF-8 - CC: clang -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt - CXX: clang++ -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt - QT_QPA_PLATFORM: offscreen - with: - target-ros2-distro: ${{ matrix.ros_distribution }} - # build all packages listed in the meta package - package-name: ${{ inputs.packages }} - vcs-repo-file-url: | - https://raw.githubusercontent.com/open-rmf/rmf/${{ matrix.ros_distribution }}/rmf.repos - colcon-defaults: | - { - "build": { - "mixin": ["asan-gcc", "lld"], - "cmake-args": ["-DCMAKE_BUILD_TYPE=Debug"], - "executor": "sequential" - } - } - colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml - - name: upload_test_stream - uses: actions/upload-artifact@v2 - with: - name: colcon-asan-logs - path: ${{ steps.build_and_test.outputs.ros-workspace-directory-name }}/log - if: always() + uses: ./.github/workflows/reusable_build.yaml + with: + dist-matrix: ${{inputs.dist-matrix}} + packages: ${{inputs.packages}} + mixin: asan From d7cda3a70ca96fe815ff4932ee787fc60c6b11ea Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Thu, 2 May 2024 12:22:07 +0800 Subject: [PATCH 06/18] Add noble - jazzy combination Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_asan.yaml | 2 ++ .github/workflows/reusable_build.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/reusable_asan.yaml b/.github/workflows/reusable_asan.yaml index 59106f8..319f938 100644 --- a/.github/workflows/reusable_asan.yaml +++ b/.github/workflows/reusable_asan.yaml @@ -15,6 +15,8 @@ on: "ubuntu_distribution": "jammy"}, {"ros_distribution": "iron", "ubuntu_distribution": "jammy"}, + {"ros_distribution": "jazzy", + "ubuntu_distribution": "noble"}, {"ros_distribution": "rolling", "ubuntu_distribution": "noble"}] jobs: diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index e5ca5a6..1e2e734 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -19,6 +19,8 @@ on: "ubuntu_distribution": "jammy"}, {"ros_distribution": "iron", "ubuntu_distribution": "jammy"}, + {"ros_distribution": "jazzy", + "ubuntu_distribution": "noble"}, {"ros_distribution": "rolling", "ubuntu_distribution": "noble"}] defaults: From 30fb77c5455abe2231e880e11e125ad77ca75dc0 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Tue, 14 May 2024 16:37:13 +0800 Subject: [PATCH 07/18] TEST, change image to desktop Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 1e2e734..2bbc5db 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -39,7 +39,7 @@ jobs: runs-on: ubuntu-latest container: # TODO: check if "desktop" is really needed for the builds or tests - image: osrf/ros:${{ matrix.ros_distribution }}-desktop-full-${{ matrix.ubuntu_distribution }} + image: osrf/ros:${{ matrix.ros_distribution }}-desktop-${{ matrix.ubuntu_distribution }} steps: - name: Setup ROS uses: ros-tooling/setup-ros@v0.7 From 3e497811484958c2dc0252176179c6a5eb75028c Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Fri, 24 May 2024 09:42:29 +0200 Subject: [PATCH 08/18] TEST: Use ros core image instead Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 2bbc5db..e800e6f 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -39,7 +39,9 @@ jobs: runs-on: ubuntu-latest container: # TODO: check if "desktop" is really needed for the builds or tests - image: osrf/ros:${{ matrix.ros_distribution }}-desktop-${{ matrix.ubuntu_distribution }} + # TODO(luca): Restore to this image once rolling-desktop-full is migrated to noble + # image: osrf/ros:${{ matrix.ros_distribution }}-desktop-${{ matrix.ubuntu_distribution }} + image: ros:${{ matrix.ros_distribution }} steps: - name: Setup ROS uses: ros-tooling/setup-ros@v0.7 From 26c542824c0a2295e934064e8fd97cc511343ad3 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Fri, 24 May 2024 09:44:12 +0200 Subject: [PATCH 09/18] Remove Jazzy action Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_asan.yaml | 2 -- .github/workflows/reusable_build.yaml | 2 -- 2 files changed, 4 deletions(-) diff --git a/.github/workflows/reusable_asan.yaml b/.github/workflows/reusable_asan.yaml index 319f938..59106f8 100644 --- a/.github/workflows/reusable_asan.yaml +++ b/.github/workflows/reusable_asan.yaml @@ -15,8 +15,6 @@ on: "ubuntu_distribution": "jammy"}, {"ros_distribution": "iron", "ubuntu_distribution": "jammy"}, - {"ros_distribution": "jazzy", - "ubuntu_distribution": "noble"}, {"ros_distribution": "rolling", "ubuntu_distribution": "noble"}] jobs: diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index e800e6f..d67776f 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -19,8 +19,6 @@ on: "ubuntu_distribution": "jammy"}, {"ros_distribution": "iron", "ubuntu_distribution": "jammy"}, - {"ros_distribution": "jazzy", - "ubuntu_distribution": "noble"}, {"ros_distribution": "rolling", "ubuntu_distribution": "noble"}] defaults: From 569b34a9406b5c4b69caf3dbb7b1c650c24c1427 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Fri, 24 May 2024 10:50:33 +0200 Subject: [PATCH 10/18] TEST, remove lld from asan build Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index d67776f..6438462 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -57,7 +57,7 @@ jobs: run: | case ${{ inputs.mixin }} in asan) - echo 'colcon_defaults={"build":{"mixin":["asan-gcc","lld"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"],"executor":"sequential"}}' >> $GITHUB_OUTPUT + echo 'colcon_defaults={"build":{"mixin":["asan-gcc"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"],"executor":"sequential"}}' >> $GITHUB_OUTPUT ;; tsan) echo 'colcon_defaults={"build":{"mixin":["tsan"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"]}}' >> $GITHUB_OUTPUT From ca73e44ae2d26b71fe7b2790bb3f8ed7db6e5161 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Fri, 24 May 2024 12:50:12 +0200 Subject: [PATCH 11/18] Remove clang and blacklist Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 6438462..932bb14 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -43,15 +43,8 @@ jobs: steps: - name: Setup ROS uses: ros-tooling/setup-ros@v0.7 - - name: install_clang_and_tools - run: sudo apt update && sudo apt install -y ccache clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov - - name: create_blacklist - run: | - mkdir -p ${{ github.workspace }}/ - touch ${{ github.workspace }}/blacklist.txt - if [[ ${{ inputs.mixin }} == "asan" ]]; then - echo "fun:*Eigen*" > ${{ github.workspace }}/blacklist.txt - fi + - name: install_tools + run: sudo apt update && sudo apt install -y ccache wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov - name: set mixins id: set_mixins run: | @@ -63,7 +56,7 @@ jobs: echo 'colcon_defaults={"build":{"mixin":["tsan"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"]}}' >> $GITHUB_OUTPUT ;; *) - echo 'colcon_defaults={"build": {"mixin": ["ccache", "coverage-gcc", "lld"]}}' >> $GITHUB_OUTPUT + echo 'colcon_defaults={"build": {"mixin": ["ccache", "coverage-gcc"]}}' >> $GITHUB_OUTPUT ;; esac - uses: actions/cache@v3 @@ -74,8 +67,6 @@ jobs: uses: ros-tooling/action-ros-ci@v0.3 env: LANG: en_US.UTF-8 - CC: clang -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt - CXX: clang++ -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt QT_QPA_PLATFORM: offscreen # We have some new_delete_type_mismatch errors that looks like to come from rclcpp ASAN_OPTIONS: detect_leaks=0:new_delete_type_mismatch=0 From 14e78a5ec4defa926918a2afeb294a2fcff8d802 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Fri, 24 May 2024 13:36:01 +0200 Subject: [PATCH 12/18] Avoid rmf_fleet_adapter_python in asan build Signed-off-by: Luca Della Vedova --- .github/workflows/asan.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/asan.yaml b/.github/workflows/asan.yaml index 383379b..0ab62ba 100644 --- a/.github/workflows/asan.yaml +++ b/.github/workflows/asan.yaml @@ -11,7 +11,8 @@ jobs: uses: ./.github/workflows/reusable_asan.yaml with: # NOTE: Avoid adding comments in the packages lines, this can break some of the called scripts in github actions - # NOTE: Build upto rmf_fleet_adapter_python and rmf_visualization to cover all core open-rmf packages. + # NOTE: Build upto rmf_fleet_adapter and rmf_visualization to cover all core open-rmf packages. + # # rmf_fleet_adapter_python causes spurious asan failures because of leaks in the Python side packages: | - rmf_fleet_adapter_python + rmf_fleet_adapter rmf_visualization From 6dca11f82316625354a424bf5908ba06a6ff435c Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Fri, 24 May 2024 18:28:21 +0200 Subject: [PATCH 13/18] Readd lld Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 932bb14..1270178 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -44,19 +44,19 @@ jobs: - name: Setup ROS uses: ros-tooling/setup-ros@v0.7 - name: install_tools - run: sudo apt update && sudo apt install -y ccache wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov + run: sudo apt update && sudo apt install -y ccache lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov - name: set mixins id: set_mixins run: | case ${{ inputs.mixin }} in asan) - echo 'colcon_defaults={"build":{"mixin":["asan-gcc"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"],"executor":"sequential"}}' >> $GITHUB_OUTPUT + echo 'colcon_defaults={"build":{"mixin":["asan-gcc", "lld"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"],"executor":"sequential"}}' >> $GITHUB_OUTPUT ;; tsan) - echo 'colcon_defaults={"build":{"mixin":["tsan"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"]}}' >> $GITHUB_OUTPUT + echo 'colcon_defaults={"build":{"mixin":["tsan", "lld"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"]}}' >> $GITHUB_OUTPUT ;; *) - echo 'colcon_defaults={"build": {"mixin": ["ccache", "coverage-gcc"]}}' >> $GITHUB_OUTPUT + echo 'colcon_defaults={"build": {"mixin": ["ccache", "coverage-gcc", "lld"]}}' >> $GITHUB_OUTPUT ;; esac - uses: actions/cache@v3 From c433bb111ccd506e2e5a89fca49a8c3d5001b23a Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Fri, 24 May 2024 21:51:39 +0200 Subject: [PATCH 14/18] Restore clang, use testing branch for action-ros Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 1270178..a0bf4b8 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -41,10 +41,17 @@ jobs: # image: osrf/ros:${{ matrix.ros_distribution }}-desktop-${{ matrix.ubuntu_distribution }} image: ros:${{ matrix.ros_distribution }} steps: + - name: create_blacklist + run: | + mkdir -p ${{ github.workspace }}/ + touch ${{ github.workspace }}/blacklist.txt + if [[ ${{ inputs.mixin }} == "asan" ]]; then + echo "fun:*Eigen*" > ${{ github.workspace }}/blacklist.txt + fi - name: Setup ROS - uses: ros-tooling/setup-ros@v0.7 + uses: ros-tooling/setup-ros@christophebedard/noble-install-libclang-rt-dev - name: install_tools - run: sudo apt update && sudo apt install -y ccache lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov + run: sudo apt update && sudo apt install -y ccache clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov - name: set mixins id: set_mixins run: | @@ -67,6 +74,8 @@ jobs: uses: ros-tooling/action-ros-ci@v0.3 env: LANG: en_US.UTF-8 + CC: clang -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt + CXX: clang++ -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt QT_QPA_PLATFORM: offscreen # We have some new_delete_type_mismatch errors that looks like to come from rclcpp ASAN_OPTIONS: detect_leaks=0:new_delete_type_mismatch=0 From 31ffe5b5b1a9dbae7671297efae5d430d5335844 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Sat, 25 May 2024 08:45:56 +0200 Subject: [PATCH 15/18] Back to desktop-full image after rolling sync Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index a0bf4b8..8b90ec4 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -37,9 +37,7 @@ jobs: runs-on: ubuntu-latest container: # TODO: check if "desktop" is really needed for the builds or tests - # TODO(luca): Restore to this image once rolling-desktop-full is migrated to noble - # image: osrf/ros:${{ matrix.ros_distribution }}-desktop-${{ matrix.ubuntu_distribution }} - image: ros:${{ matrix.ros_distribution }} + image: osrf/ros:${{ matrix.ros_distribution }}-desktop-${{ matrix.ubuntu_distribution }} steps: - name: create_blacklist run: | @@ -49,7 +47,7 @@ jobs: echo "fun:*Eigen*" > ${{ github.workspace }}/blacklist.txt fi - name: Setup ROS - uses: ros-tooling/setup-ros@christophebedard/noble-install-libclang-rt-dev + uses: ros-tooling/setup-ros@d8f32e519cd758bc3a3ffa0bf13ec77544aae30f - name: install_tools run: sudo apt update && sudo apt install -y ccache clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov - name: set mixins From 358a71a0095b66eb48f01e5c9477f1ae3e632b00 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Sat, 25 May 2024 09:48:42 +0200 Subject: [PATCH 16/18] Try using cyclonedds Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 8b90ec4..d2e03b4 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -49,7 +49,7 @@ jobs: - name: Setup ROS uses: ros-tooling/setup-ros@d8f32e519cd758bc3a3ffa0bf13ec77544aae30f - name: install_tools - run: sudo apt update && sudo apt install -y ccache clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov + run: sudo apt update && sudo apt install -y ccache clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov ros-${{ matrix.ros_distribution }}-rmw-cyclonedds-cpp - name: set mixins id: set_mixins run: | @@ -74,6 +74,7 @@ jobs: LANG: en_US.UTF-8 CC: clang -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt CXX: clang++ -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt + RMW_IMPLEMENTATION: rmw_cyclonedds_cpp QT_QPA_PLATFORM: offscreen # We have some new_delete_type_mismatch errors that looks like to come from rclcpp ASAN_OPTIONS: detect_leaks=0:new_delete_type_mismatch=0 From 22aa0940ae2bc002f2aa3580b06db2d53a7bf73c Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Wed, 29 May 2024 09:17:43 +0200 Subject: [PATCH 17/18] setup-ros released, add comments for dds vendor Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index d2e03b4..59e7d0f 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -47,7 +47,7 @@ jobs: echo "fun:*Eigen*" > ${{ github.workspace }}/blacklist.txt fi - name: Setup ROS - uses: ros-tooling/setup-ros@d8f32e519cd758bc3a3ffa0bf13ec77544aae30f + uses: ros-tooling/setup-ros@v0.7 - name: install_tools run: sudo apt update && sudo apt install -y ccache clang clang-tools lld wget python3-pip python3-colcon-coveragepy-result python3-colcon-lcov-result lcov ros-${{ matrix.ros_distribution }}-rmw-cyclonedds-cpp - name: set mixins @@ -74,6 +74,7 @@ jobs: LANG: en_US.UTF-8 CC: clang -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt CXX: clang++ -fsanitize-blacklist=${{ github.workspace }}/blacklist.txt + # Fastdds causes spurious failures in asan action, default to cyclonedds RMW_IMPLEMENTATION: rmw_cyclonedds_cpp QT_QPA_PLATFORM: offscreen # We have some new_delete_type_mismatch errors that looks like to come from rclcpp From 0bffb565d9e0a66ceeee848c27698fe10ddfac71 Mon Sep 17 00:00:00 2001 From: Luca Della Vedova Date: Wed, 29 May 2024 09:47:08 +0200 Subject: [PATCH 18/18] Remove extra flags from asan and tsan actions Signed-off-by: Luca Della Vedova --- .github/workflows/reusable_build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/reusable_build.yaml b/.github/workflows/reusable_build.yaml index 59e7d0f..82360b5 100644 --- a/.github/workflows/reusable_build.yaml +++ b/.github/workflows/reusable_build.yaml @@ -55,10 +55,10 @@ jobs: run: | case ${{ inputs.mixin }} in asan) - echo 'colcon_defaults={"build":{"mixin":["asan-gcc", "lld"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"],"executor":"sequential"}}' >> $GITHUB_OUTPUT + echo 'colcon_defaults={"build":{"mixin":["asan-gcc", "lld"]}}' >> $GITHUB_OUTPUT ;; tsan) - echo 'colcon_defaults={"build":{"mixin":["tsan", "lld"],"cmake-args":["-DCMAKE_BUILD_TYPE=Debug"]}}' >> $GITHUB_OUTPUT + echo 'colcon_defaults={"build":{"mixin":["tsan", "lld"]}}' >> $GITHUB_OUTPUT ;; *) echo 'colcon_defaults={"build": {"mixin": ["ccache", "coverage-gcc", "lld"]}}' >> $GITHUB_OUTPUT