Skip to content

Commit

Permalink
Merge branch 'humble' into mergify/bp/humble/pr-1813
Browse files Browse the repository at this point in the history
  • Loading branch information
sea-bass authored Dec 17, 2024
2 parents e3982b7 + 06184b2 commit 2e24608
Show file tree
Hide file tree
Showing 155 changed files with 2,258 additions and 831 deletions.
68 changes: 0 additions & 68 deletions .docker/ci-testing/Dockerfile

This file was deleted.

2 changes: 2 additions & 0 deletions .docker/ci/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ FROM ros:${ROS_DISTRO}-ros-base
LABEL maintainer Robert Haschke [email protected]

ENV TERM xterm
# Allow non-interactive installation of ros-humble-rmw-connextdds
ENV RTI_NC_LICENSE_ACCEPTED yes

# Setup (temporary) ROS workspace
WORKDIR /root/ws_moveit
Expand Down
3 changes: 3 additions & 0 deletions .docker/release/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ ARG ROS_DISTRO=rolling
FROM ros:${ROS_DISTRO}-ros-base
LABEL maintainer Robert Haschke [email protected]

# Allow non-interactive installation of ros-humble-rmw-connextdds
ENV RTI_NC_LICENSE_ACCEPTED yes

# Commands are combined in single RUN statement with "apt/lists" folder removal to reduce image size
RUN apt-get update -q && \
apt-get upgrade -q -y && \
Expand Down
2 changes: 1 addition & 1 deletion .docker/source/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Downloads the moveit source code and install remaining debian dependencies

ARG ROS_DISTRO=rolling
FROM moveit/moveit2:${ROS_DISTRO}-ci-testing
FROM moveit/moveit2:${ROS_DISTRO}-ci
LABEL maintainer Robert Haschke [email protected]

# Export ROS_UNDERLAY for downstream docker containers
Expand Down
43 changes: 43 additions & 0 deletions .docker/tutorial-source/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# syntax = docker/dockerfile:1.3

# ghcr.io/moveit/moveit2:main-${ROS_DISTRO}-tutorial-source
# Source build of the repos file from the tutorial site

ARG ROS_DISTRO=humble

FROM moveit/moveit2:${ROS_DISTRO}-ci
LABEL maintainer Tyler Weaver [email protected]

# Export ROS_UNDERLAY for downstream docker containers
ENV ROS_UNDERLAY /root/ws_moveit/install
WORKDIR $ROS_UNDERLAY/..

# Copy MoveIt sources from docker context
COPY . src/moveit2

# Commands are combined in single RUN statement with "apt/lists" folder removal to reduce image size
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#minimize-the-number-of-layers
RUN --mount=type=cache,target=/root/.ccache/,sharing=locked \
# Enable ccache
PATH=/usr/lib/ccache:$PATH && \
# Checkout the tutorial repo
git clone -b ${ROS_DISTRO} https://github.com/moveit/moveit2_tutorials src/moveit2_tutorials && \
# Fetch required upstream sources for building
vcs import --skip-existing src < src/moveit2_tutorials/moveit2_tutorials.repos && \
# Source ROS install
. "/opt/ros/${ROS_DISTRO}/setup.sh" &&\
# Install dependencies from rosdep
apt-get -q update && \
rosdep update && \
DEBIAN_FRONTEND=noninteractive \
rosdep install -y --from-paths src --ignore-src --rosdistro ${ROS_DISTRO} --as-root=apt:false && \
rm -rf /var/lib/apt/lists/* && \
# Build the workspace
colcon build \
--cmake-args "-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON --no-warn-unused-cli" \
--ament-cmake-args -DCMAKE_BUILD_TYPE=Release \
--event-handlers desktop_notification- status- && \
ccache -s && \
#
# Update /ros_entrypoint.sh to source our new workspace
sed -i "s#/opt/ros/\$ROS_DISTRO/setup.bash#$ROS_UNDERLAY/setup.sh#g" /ros_entrypoint.sh
46 changes: 26 additions & 20 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ name: CI
on:
workflow_dispatch:
pull_request:
merge_group:
push:
branches:
- humble
Expand All @@ -19,7 +20,7 @@ jobs:
- IMAGE: humble-ci
CCOV: true
ROS_DISTRO: humble
- IMAGE: humble-ci-testing
- IMAGE: humble-ci
ROS_DISTRO: humble
IKFAST_TEST: true
CLANG_TIDY: pedantic
Expand All @@ -37,9 +38,6 @@ jobs:
$(f="moveit2_$(sed 's/-.*$//' <<< "${{ matrix.env.IMAGE }}").repos"; test -r $f && echo $f)
# Pull any updates to the upstream workspace (after restoring it from cache)
AFTER_SETUP_UPSTREAM_WORKSPACE: vcs pull $BASEDIR/upstream_ws/src
# Uninstall binaries that are duplicated in the .repos file
# TODO(andyz): remove this once a sync containing 35b93c8 happens
AFTER_SETUP_UPSTREAM_WORKSPACE_EMBED: sudo apt remove ros-${{ matrix.env.ROS_DISTRO }}-moveit-msgs -y
AFTER_SETUP_DOWNSTREAM_WORKSPACE: vcs pull $BASEDIR/downstream_ws/src
# Clear the ccache stats before and log the stats after the build
AFTER_SETUP_CCACHE: ccache --zero-stats --max-size=10.0G
Expand All @@ -52,7 +50,7 @@ jobs:
-DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld
-DCMAKE_MODULE_LINKER_FLAGS=-fuse-ld=lld
-DCMAKE_BUILD_TYPE=${{ matrix.env.CCOV && 'Debug' || 'Release'}}
-DCMAKE_CXX_FLAGS="-Werror $CXXFLAGS${{ matrix.env.CCOV && ' --coverage -O2 -fno-omit-frame-pointer'}}"
-DCMAKE_CXX_FLAGS="-Werror $CXXFLAGS${{ matrix.env.CCOV && ' --coverage -O2 -fno-omit-frame-pointer' || ''}}"
UPSTREAM_CMAKE_ARGS: "-DCMAKE_CXX_FLAGS=''"
DOWNSTREAM_CMAKE_ARGS: -DCMAKE_CXX_FLAGS="-Wall -Wextra"
CCACHE_DIR: ${{ github.workspace }}/.ccache
Expand All @@ -63,6 +61,7 @@ jobs:
(cd $TARGET_REPO_PATH; clang-tidy --list-checks)
# Disable clang-tidy for ikfast plugins as we cannot fix the generated code
find $BASEDIR/target_ws/build -iwholename "*_ikfast_plugin/compile_commands.json" -exec rm {} \;
find $BASEDIR/target_ws/build -iwholename "*_ikfast_manipulator_plugin/compile_commands.json" -exec rm {} \;
CC: ${{ matrix.env.CLANG_TIDY && 'clang' }}
CXX: ${{ matrix.env.CLANG_TIDY && 'clang++' }}
ADDITIONAL_DEBS: lld
Expand All @@ -73,7 +72,7 @@ jobs:
- name: "Free up disk space"
if: matrix.env.CCOV
run: |
sudo apt-get -qq purge build-essential "ghc*"
sudo apt-get -qq purge "ghc*"
sudo apt-get clean
# cleanup docker images not used by us
docker system prune -af
Expand All @@ -84,11 +83,13 @@ jobs:
# free up a lot of stuff from /usr/local
sudo rm -rf /usr/local
df -h
- uses: actions/checkout@v3
- uses: testspace-com/setup-testspace@v1
if: github.repository == 'ros-planning/moveit2'
with:
domain: ros-planning
- uses: actions/checkout@v4
# NOTE: Testspace is temporarily disabled and needs to be installed for the MoveIt org
# See: https://github.com/moveit/moveit2/issues/2852
# - uses: testspace-com/setup-testspace@v1
# if: github.repository == 'moveit/moveit2'
# with:
# domain: moveit
- name: Get latest release date for rosdistro
id: rosdistro_release_date
uses: JafarAbdi/latest-rosdistro-release-date-action@main
Expand All @@ -100,33 +101,36 @@ jobs:
with:
file: moveit2.repos
- name: Cache upstream workspace
uses: pat-s/always-upload-cache@v3.0.11
uses: rhaschke/cache@main
with:
path: ${{ env.BASEDIR }}/upstream_ws
key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }}
restore-keys: ${{ env.CACHE_PREFIX }}
env:
GHA_CACHE_SAVE: always
CACHE_PREFIX: ${{ steps.rosdistro_release_date.outputs.date }}-upstream_ws-${{ steps.repos_edit_timestamp.outputs.timestamp }}-${{ matrix.env.IMAGE }}-${{ hashFiles('moveit2*.repos', '.github/workflows/ci.yaml') }}
# The target directory cache doesn't include the source directory because
# that comes from the checkout. See "prepare target_ws for cache" task below
- name: Cache target workspace
if: "!matrix.env.CCOV"
uses: pat-s/always-upload-cache@v3.0.11
uses: rhaschke/cache@main
with:
path: ${{ env.BASEDIR }}/target_ws
key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }}
restore-keys: ${{ env.CACHE_PREFIX }}
env:
GHA_CACHE_SAVE: always
CACHE_PREFIX: target_ws${{ matrix.env.CCOV && '-ccov' || '' }}-${{ matrix.env.IMAGE }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml', '.github/workflows/ci.yaml') }}
- name: Cache ccache
uses: pat-s/always-upload-cache@v3.0.11
uses: rhaschke/cache@main
with:
path: ${{ env.CCACHE_DIR }}
key: ${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
${{ env.CACHE_PREFIX }}-${{ github.sha }}
${{ env.CACHE_PREFIX }}
env:
GHA_CACHE_SAVE: always
CACHE_PREFIX: ccache-${{ matrix.env.IMAGE }}${{ matrix.env.CCOV && '-ccov' || '' }}
- name: Configure ccache
run: |
Expand All @@ -139,12 +143,14 @@ jobs:
name: Run industrial_ci
uses: ros-industrial/industrial_ci@master
env: ${{ matrix.env }}
- name: Push result to Testspace
if: always() && (github.repository == 'ros-planning/moveit2')
run: |
testspace "[ ${{ matrix.env.IMAGE }} ]${{ env.BASEDIR }}/target_ws/**/test_results/**/*.xml"
# NOTE: Testspace is temporarily disabled and needs to be installed for the MoveIt org
# See: https://github.com/moveit/moveit2/issues/2852
# - name: Push result to Testspace
# if: always() && (github.repository == 'moveit/moveit2')
# run: |
# testspace "[ ${{ matrix.env.IMAGE }} ]${{ env.BASEDIR }}/target_ws/**/test_results/**/*.xml"
- name: Upload test artifacts (on failure)
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: failure() && (steps.ici.outputs.run_target_test || steps.ici.outputs.target_test_results)
with:
name: test-results-${{ matrix.env.IMAGE }}
Expand All @@ -157,7 +163,7 @@ jobs:
workdir: ${{ env.BASEDIR }}/target_ws
ignore: '"*/target_ws/build/*" "*/target_ws/install/*" "*/test/*"'
- name: Upload codecov report
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v5
if: always() && matrix.env.CCOV && steps.ici.outputs.target_test_results == '0'
with:
files: ${{ env.BASEDIR }}/target_ws/coverage.info
Expand Down
Loading

0 comments on commit 2e24608

Please sign in to comment.