Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Iron and transition Rolling to Noble #10

Merged
merged 18 commits into from
May 29, 2024
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/asan.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
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 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
rmf_visualization
7 changes: 4 additions & 3 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
80 changes: 11 additions & 69 deletions .github/workflows/reusable_asan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,75 +11,17 @@ on:
required: false
type: string
default: |
[{"ros_distribution": "foxy",
"ubuntu_distribution": "focal"}]
defaults:
run:
shell: bash
concurrency:
group: ${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
[{"ros_distribution": "humble",
"ubuntu_distribution": "jammy"},
{"ros_distribution": "iron",
"ubuntu_distribution": "jammy"},
{"ros_distribution": "rolling",
"ubuntu_distribution": "noble"}]
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/[email protected]
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
32 changes: 15 additions & 17 deletions .github/workflows/reusable_build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ on:
default: |
[{"ros_distribution": "humble",
"ubuntu_distribution": "jammy"},
{"ros_distribution": "iron",
"ubuntu_distribution": "jammy"},
{"ros_distribution": "rolling",
"ubuntu_distribution": "jammy"}]
"ubuntu_distribution": "noble"}]
defaults:
run:
shell: bash
Expand All @@ -31,52 +33,48 @@ 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 }}
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: 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
if [[ ${{ inputs.mixin }} == "asan" ]]; then
echo "fun:*Eigen*" > ${{ github.workspace }}/blacklist.txt
fi
- 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 ros-${{ matrix.ros_distribution }}-rmw-cyclonedds-cpp
- name: set mixins
id: set_mixins
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"],"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": ["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/[email protected]
env:
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
luca-della-vedova marked this conversation as resolved.
Show resolved Hide resolved
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
Expand Down
Loading