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

Wavemap 2.0 #66

Merged
merged 164 commits into from
Aug 19, 2024
Merged
Show file tree
Hide file tree
Changes from 158 commits
Commits
Show all changes
164 commits
Select commit Hold shift + click to select a range
9f1c630
Implement Quasi Euclidean SDF generator
victorreijgwart Oct 13, 2023
3d0f0f4
Correctly handle surface crossings and negative distances
victorreijgwart Oct 13, 2023
eb8035f
Minor refactoring
victorreijgwart Oct 16, 2023
393a3db
Major refactoring to make the spatial data structures reusable
victorreijgwart Oct 20, 2023
373b87c
Clean up block and cell index conversions for hashed data structures
victorreijgwart Oct 20, 2023
89bccd0
Merge branch 'feature/optimize_chunked_integrator' into feature/esdf
victorreijgwart Oct 20, 2023
31d60cb
Draft full Euclidean SDF generator
victorreijgwart Oct 26, 2023
8902c4e
Clean up min distance computation
victorreijgwart Oct 26, 2023
2b72e6d
Implement (de)serialization of HashedBlock maps to files
victorreijgwart Oct 27, 2023
6fcd67f
Implement (de)serialization of HashedBlocks to ROS msgs
victorreijgwart Oct 27, 2023
ee8d212
Extend Rviz plugin to support ESDFs
victorreijgwart Oct 27, 2023
e5164b1
Add a small occupancy to ESDF conversion script
victorreijgwart Oct 27, 2023
a059ba5
Reduce code duplication between hashed dense block data structures
victorreijgwart Nov 15, 2023
8964b6b
Move ESDF generation script to examples
victorreijgwart Nov 15, 2023
f3fbbe6
Improve SDF tests
victorreijgwart Nov 15, 2023
585d32e
Minor cleanup
victorreijgwart Nov 16, 2023
587fa30
Clean up and extend ray iterator
victorreijgwart Nov 16, 2023
6766d01
Merge branch 'main' into feature/planning_tools
victorreijgwart Nov 16, 2023
70a126f
Handle default arguments for non-float types
victorreijgwart Nov 17, 2023
9a67f59
Draft plugin system
victorreijgwart Nov 20, 2023
5abdf6f
Update wavemap config schema and configs
victorreijgwart Nov 20, 2023
68110fd
Update Livox-only code
victorreijgwart Nov 21, 2023
47c3b0a
Implement map_crop operation for local mapping
victorreijgwart Nov 21, 2023
5b7d3a0
Drive operations with input message time instead of ros::Time::now()
victorreijgwart Nov 21, 2023
a1b8578
Add schema for map crop operation config validation
victorreijgwart Nov 21, 2023
d3fda74
Add convenience aliases
victorreijgwart Nov 23, 2023
82ca28e
Rename operations param to operations_pipeline as suggested by @jk-ethz
victorreijgwart Nov 24, 2023
d67c840
Redesign tree data structure interfaces
victorreijgwart Nov 24, 2023
eeb48f7
Add generic hashed octree data structure
victorreijgwart Nov 29, 2023
be8a072
Refactor grid neighborhood utils
victorreijgwart Nov 30, 2023
bb49e60
Refactor and extend ROS msg conversions
victorreijgwart Dec 1, 2023
39f9510
Add plugin to publish obstacles as fixed-resolution pointcloud
victorreijgwart Dec 1, 2023
70c57a8
Update config validation schema to support new operation
victorreijgwart Dec 1, 2023
07e67a2
Switch to sensor_msgs::PointCloud2 msg type
victorreijgwart Dec 1, 2023
f99a579
Extend and test adjacency utils
victorreijgwart Dec 2, 2023
d5acc16
Make Adjacency types and masks more intuitive to use
victorreijgwart Dec 2, 2023
1f9f6f5
Refactor the TypeSelector class to support nicer syntax
victorreijgwart Dec 2, 2023
f1d214d
Use available methods directly
victorreijgwart Dec 4, 2023
1e528af
Avoid unnecessary square root computation in point validity check
victorreijgwart Dec 5, 2023
6a15148
Avoid unnecessary square root computation in point validity check
victorreijgwart Dec 5, 2023
b204a33
Extend AABBs to handle AABB-AABB min and max distance queries
victorreijgwart Dec 5, 2023
1689a67
Use bit_ops::is_bit_set to make code easier to read
victorreijgwart Dec 5, 2023
7278b6e
Additional convenience methods
victorreijgwart Dec 5, 2023
3c4fa22
Test NdtreeIndex adjacency checks
victorreijgwart Dec 8, 2023
4ddf81a
Hint GCC that the loop has a small, fixed size
victorreijgwart Dec 11, 2023
b6e1336
Fix LoD level selection when using Rviz's TopDownOrtho ViewController
victorreijgwart Dec 12, 2023
9b66f7c
Only hallucinate filler leaves when needed
victorreijgwart Dec 14, 2023
1d0c51c
Add query accelerator for Spatial and NdtreeBlock hash data structures
victorreijgwart Dec 16, 2023
c704ba4
Replace checks with dchecks
victorreijgwart Dec 16, 2023
1e3076e
Simplify traversing ChunkedNdtrees by emulating single node ptrs
victorreijgwart Dec 27, 2023
dbb6086
Update serialization methods to use the new simulated ptrs
victorreijgwart Dec 27, 2023
b4349e1
Improve simulated pointer/reference semantics
victorreijgwart Dec 28, 2023
81d6ad9
Merge branch 'main' into feature/planning_tools
victorreijgwart Dec 28, 2023
3dbec03
Rename VolumetricDataStructure to Map
victorreijgwart Dec 29, 2023
6b6f746
Refactor tests
victorreijgwart Dec 29, 2023
88c6d6b
Merge branch 'main' into feature/plugin_system
victorreijgwart Jan 5, 2024
94e90a3
Add option to only publish points for changed blocks
victorreijgwart Jan 5, 2024
4253df7
Refactor OccupancyClassifier and implement ClassifiedMap
victorreijgwart Jan 10, 2024
f4b1d81
Test occupancy classifier
victorreijgwart Jan 10, 2024
49f0970
Add query methods and visitors to ClassifiedMap
victorreijgwart Jan 10, 2024
5becb7e
Expose additional getters
victorreijgwart Jan 11, 2024
1ab37c4
Add getter for block hash map
victorreijgwart Jan 11, 2024
6ce07ad
Remove unused member variable
victorreijgwart Jan 11, 2024
4547a1b
Start implementing accelerated node getter for NdtreeBlockHashes
victorreijgwart Jan 11, 2024
7280aed
Reorganize unit tests to match new utils structure
victorreijgwart Jan 15, 2024
8286b15
Improve readability of initializer
victorreijgwart Jan 15, 2024
5157074
Minor refactoring
victorreijgwart Jan 15, 2024
6a9b05d
Test classified map
victorreijgwart Jan 16, 2024
7e61609
Remove unsafe optimizations
victorreijgwart Jan 17, 2024
7b81ca9
Also call callback for partial matches at termination height
victorreijgwart Jan 19, 2024
536d8f3
Accelerate all ClassifiedMap query types
victorreijgwart Jan 23, 2024
13116f8
Implement accelerated node getters for generic NdtreeBlockHashes
victorreijgwart Jan 23, 2024
ed29b02
Make eraseBlockIf available for more spatial hash data structures
victorreijgwart Jan 23, 2024
b25ad42
Minor improvements to ClassifiedMap
victorreijgwart Jan 23, 2024
2346387
Minor optimizations
victorreijgwart Jan 23, 2024
30a554c
Clean up syntax
victorreijgwart Jan 23, 2024
91c37fc
Improve consistency
victorreijgwart Jan 25, 2024
20615e5
Reintroduce collision utils
victorreijgwart Jan 25, 2024
236d525
Improve index conversion vector op syntax
victorreijgwart Jan 31, 2024
0c2ba15
Add method to query the ray's length
victorreijgwart Jan 31, 2024
8714abc
Extend random point sampling utils
victorreijgwart Feb 1, 2024
6e14b05
Add option to inflate the occupancy map based a robot's radius
victorreijgwart Feb 2, 2024
5a40d0f
Extend ClassifiedMap interfaces and convenience methods
victorreijgwart Feb 3, 2024
56368ef
Make it possible to pass expressions in param validators
victorreijgwart Feb 3, 2024
ecb7149
Directly use the ClassifiedMap to sample random (collision free) points
victorreijgwart Feb 3, 2024
1e47bac
Improve SDF generator tests
victorreijgwart Feb 4, 2024
b66ecef
Expose height of last query result
victorreijgwart Feb 16, 2024
7f4905c
Improve param variant syntax and add method to get child as given type
victorreijgwart Feb 16, 2024
3fb1547
Make it possible to fix the PointSampler's random seed
victorreijgwart Feb 17, 2024
ec051ea
No longer use catkin_simple for wavemap_io
victorreijgwart Mar 27, 2024
1701cdb
Merge branch 'feature/plugin_system' into release/v2.0
victorreijgwart Mar 27, 2024
ef94488
Rename wavemap server to make room for ROS agnostic server
victorreijgwart Mar 27, 2024
1d1ce9d
Move wavemap_io into regular wavemap library for simplicity
victorreijgwart Mar 28, 2024
09b55b2
Remove dependencies on catkinized gflags, glog and Eigen
victorreijgwart Mar 28, 2024
a647ada
Find glog using its included pkgconfig instead of defining our own
victorreijgwart Mar 28, 2024
631c767
Start migration to pure CMake wavemap library
victorreijgwart Apr 4, 2024
4c5f921
Clean up library file structure and (transitive) dependency handling
victorreijgwart May 3, 2024
2c23eb6
Make ROS1 interfaces compatible with CMake-only library
victorreijgwart May 6, 2024
c59f773
Enable unit testing in CMake-only projects
victorreijgwart May 7, 2024
13d3385
Update unit tests in catkin packages and tidy up CMake files
victorreijgwart May 7, 2024
ed35ebf
Auto-select supported packages in toplevel CMakeLists (for IDEs)
victorreijgwart May 7, 2024
44705cb
Minor minkindr code cleanup
victorreijgwart Jul 8, 2024
a3bc0d9
Make measurement integration and map operation pipeline ROS-agnostic
victorreijgwart Jul 17, 2024
d256d1d
Update config files and schemas
victorreijgwart Jul 17, 2024
33f08da
Update all factories to return unique_ptrs
victorreijgwart Jul 17, 2024
7fa862b
Move pointcloud undistortion code into ROS-agnostic library
victorreijgwart Jul 17, 2024
a4a649b
Make integrator max_update_resolution easier to configure
victorreijgwart Jul 17, 2024
e949194
Handle integrator names natively through config system
victorreijgwart Jul 18, 2024
521f53b
Print clear error msgs when measurement_integrator_names fail to parse
victorreijgwart Jul 18, 2024
3425759
Fetch schema standard over HTTPS not HTTP
victorreijgwart Jul 18, 2024
85c7ac5
Make wavemap catkin installable
victorreijgwart Jul 19, 2024
912cb66
Make 'catkin test wavemap' run the library's tests
victorreijgwart Jul 19, 2024
b52b682
Remove minkindr install dep as it is no longer needed
victorreijgwart Jul 24, 2024
24d8a72
Remove Docker stage to build from-source deps as no longer needed
victorreijgwart Jul 24, 2024
b29c0aa
Build wavemap_msgs without catkin_simple
victorreijgwart Jul 24, 2024
7cf16b6
Simplify Docker and CI scripts now that we no longer build deps from src
victorreijgwart Jul 24, 2024
f59e376
Build wavemap_ros_conversions without catkin_simple
victorreijgwart Jul 24, 2024
f94c97f
Mark wavemap_ros_conversions library and headers for installation
victorreijgwart Jul 24, 2024
65e867f
Reintroduce clang-tidy CI integration
victorreijgwart Jul 24, 2024
9cb149d
Update doc generation scripts
victorreijgwart Jul 24, 2024
98a0a56
Fix catkin install errors found in CI
victorreijgwart Jul 24, 2024
b56f089
Revert doc page paths due to issues with PDF generation
victorreijgwart Jul 24, 2024
434dcbf
Bump GitHub actions versions to address deprecation warnings
victorreijgwart Jul 24, 2024
3c53eed
Shorten map_operations_pipeline param name to map_operations
victorreijgwart Jul 25, 2024
b87384f
Fix GCC hanging when compiling with UBSAN enabled
victorreijgwart Jul 25, 2024
77313b4
Bump docker/build-push-action from v3 to v6
victorreijgwart Jul 25, 2024
e02a642
Restructure examples into generic cpp and ros1-specific examples
victorreijgwart Jul 26, 2024
2501fde
Simplify DECLARE_CONFIG_MEMBERS macro
victorreijgwart Jul 29, 2024
66b5a14
Add option to pull in missing dependencies with FetchContent
victorreijgwart Jul 31, 2024
26110b8
Minor dependency management fixes after testing in Docker
victorreijgwart Jul 31, 2024
9be9421
Make wavemap library installable
victorreijgwart Aug 2, 2024
fa579e5
Disable option to install if not all deps are available as system libs
victorreijgwart Aug 2, 2024
155cb1f
Fix conflicts between plain CMake and catkin install rules
victorreijgwart Aug 2, 2024
4b27488
Start updating the documentation
victorreijgwart Aug 3, 2024
d562b2e
Cleaner dependency handling in catkin
victorreijgwart Aug 6, 2024
d03dbef
Use more future proof names for ROS input handlers
victorreijgwart Aug 6, 2024
55a9dc3
Restructure docs and extend C++ and ROS1 specific tutorials
victorreijgwart Aug 6, 2024
2c9c520
Add examples/cpp to wavemap_ide CMake for introspection in IDEs
victorreijgwart Aug 7, 2024
339338b
Add methods to configure the C++ library's logging level (verbosity)
victorreijgwart Aug 7, 2024
f52e7e4
Update the documentation on how to configure wavemap
victorreijgwart Aug 7, 2024
0574c28
Move C++ library into subfolder to make space for Python API
victorreijgwart Aug 8, 2024
407ed1f
Address @LionelOtt's first set of comments on PR #66
victorreijgwart Aug 8, 2024
27a7744
Make utility scripts ROS agnostic and remove wavemap_utils ROS pkg
victorreijgwart Aug 8, 2024
ece82dd
Check and update documentation links
victorreijgwart Aug 8, 2024
6b9f7ec
Remove last dependencies on catkin_simple
victorreijgwart Aug 9, 2024
f1bb45c
Remove rosdep skip-keys that are no longer applicable
victorreijgwart Aug 9, 2024
bcc5f88
Clean up CI workflows by using Docker image default args
victorreijgwart Aug 9, 2024
e25c152
Clean up Docker build context
victorreijgwart Aug 9, 2024
281e604
Add example Dockerfiles for wavemap C++ on Alpine and Debian
victorreijgwart Aug 9, 2024
c1634e2
Switch from CI to local release management
victorreijgwart Aug 9, 2024
ef6097a
Address CI clang-tidy warnings
victorreijgwart Aug 9, 2024
876f04e
Revert fix for clang-tidy unused variable warning
victorreijgwart Aug 9, 2024
d0d9f00
Add script to update changelogs and version numbers incl. non-ROS pkgs
victorreijgwart Aug 9, 2024
75dc457
Remove hard coded CMake project name
victorreijgwart Aug 9, 2024
5095e41
Update documentation links in README
victorreijgwart Aug 12, 2024
fbb227b
Extend changelog script to include previous paths for migrated packages
victorreijgwart Aug 12, 2024
af49c93
Include contributors in changelogs
victorreijgwart Aug 12, 2024
27e2baf
Update changelogs
victorreijgwart Aug 12, 2024
1f95725
Anchor links from docs to GH code against current commit to avoid expiry
victorreijgwart Aug 16, 2024
719bc51
Add missing gitpython CI dep
victorreijgwart Aug 16, 2024
83a94fc
Improve prepare_release script
victorreijgwart Aug 16, 2024
cf332c7
Address doc generation not finding git repo in CI
victorreijgwart Aug 16, 2024
8c1f656
Add helper to draft release notes
victorreijgwart Aug 16, 2024
79ca200
Rename wavemap ROS1 Docker img to make space for pure C++ and ROS2 imgs
victorreijgwart Aug 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .devcontainer/clion/ros_env.list
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ROS_DISTRO=noetic
ROS_PYTHON_VERSION=3
ROS_ROOT=/opt/ros/noetic/share/ros
ROS_MASTER_URI=http://localhost:11311
ROS_PACKAGE_PATH=/home/ci/catkin_ws/src/dependencies/catkin_simple:/home/ci/catkin_ws/src/dependencies/eigen_catkin:/home/ci/catkin_ws/src/dependencies/gflags_catkin:/home/ci/catkin_ws/src/dependencies/glog_catkin:/home/ci/catkin_ws/src/dependencies/eigen_checks:/home/ci/catkin_ws/src/dependencies/minkindr/minkindr:/home/ci/catkin_ws/src/wavemap/libraries/wavemap:/home/ci/catkin_ws/src/wavemap/tooling/packages/wavemap_all:/home/ci/catkin_ws/src/wavemap/libraries/wavemap_io:/home/ci/catkin_ws/src/wavemap/ros/wavemap_msgs:/home/ci/catkin_ws/src/wavemap/ros/wavemap_ros_conversions:/home/ci/catkin_ws/src/wavemap/ros/wavemap_ros:/home/ci/catkin_ws/src/wavemap/ros/wavemap_rviz_plugin:/home/ci/catkin_ws/src/wavemap/tooling/packages/wavemap_utils:/opt/ros/noetic/share
ROS_PACKAGE_PATH=/home/ci/catkin_ws/src/dependencies/eigen_catkin:/home/ci/catkin_ws/src/dependencies/gflags_catkin:/home/ci/catkin_ws/src/dependencies/glog_catkin:/home/ci/catkin_ws/src/dependencies/eigen_checks:/home/ci/catkin_ws/src/dependencies/minkindr/minkindr:/home/ci/catkin_ws/src/wavemap/libraries/wavemap:/home/ci/catkin_ws/src/wavemap/tooling/packages/wavemap_all:/home/ci/catkin_ws/src/wavemap/libraries/wavemap_io:/home/ci/catkin_ws/src/wavemap/ros/wavemap_msgs:/home/ci/catkin_ws/src/wavemap/ros/wavemap_ros_conversions:/home/ci/catkin_ws/src/wavemap/ros/wavemap_ros:/home/ci/catkin_ws/src/wavemap/ros/wavemap_rviz_plugin:/opt/ros/noetic/share
CMAKE_PREFIX_PATH=/home/ci/catkin_ws/devel:/opt/ros/noetic
PKG_CONFIG_PATH=/home/ci/catkin_ws/devel/lib/pkgconfig:/opt/ros/noetic/lib/pkgconfig
PYTHONPATH=/home/ci/catkin_ws/devel/lib/python3/dist-packages:/opt/ros/noetic/lib/python3/dist-packages
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup-ccache/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ runs:
run: echo "date=$(date -u "+%Y-%m-%d_%H-%M-%S")" >> $GITHUB_OUTPUT

- name: Setup ccache cache sharing
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ${{ env.CCACHE_DIR }}
key: ccache-${{ inputs.cache-version }}-${{ inputs.cache-group }}-${{ github.sha }}-${{ steps.get-date.outputs.date }}
Expand Down
116 changes: 32 additions & 84 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,10 @@ on:
# (/github/home is a docker volume mapped to the container's host).
env:
REPOSITORY_NAME: wavemap
DOCKER_FROM_IMAGE: ros:noetic-ros-base-focal
DOCKER_TARGET_ROS_PKG: wavemap_all
DOCKER_CI_REGISTRY: hub.wavemap.vwire.ch
DOCKER_RELEASE_REGISTRY: ghcr.io
DOCKER_RELEASE_TARGET: workspace-built-deps
ROS_HOME: /home/ci/.ros
DOCKER_RELEASE_TARGET: workspace
USER_HOME: /home/ci
CATKIN_WS_PATH: /home/ci/catkin_ws
CCACHE_DIR: /home/ci/ccache

Expand All @@ -39,7 +37,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v1
Expand All @@ -60,7 +58,7 @@ jobs:
LOCAL_IMAGE_NAME: ${{ needs.common-variables.outputs.local_ci_image_name }}
steps:
- name: Fetch the package's repository
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
path: ${{ env.REPOSITORY_NAME }}

Expand All @@ -72,99 +70,41 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Prepare ccache to accelerate the build
id: get-date
# NOTE: Installing tar is required for actions/cache@v3 to work properly
# on docker:20.10.9-dind.
run: |
apk add --no-cache tar
mkdir -p ccache
echo "date=$(date -u "+%Y-%m-%d_%H-%M-%S")" >> $GITHUB_OUTPUT

- name: Pull in ccache's cache
uses: actions/cache@v3
with:
path: ccache
key: ccache-${{ secrets.CCACHE_CACHE_VERSION }}-noetic-gcc-docker-${{ github.sha }}-${{ steps.get-date.outputs.date }}
restore-keys: |
ccache-${{ secrets.CCACHE_CACHE_VERSION }}-noetic-gcc-docker-${{ github.sha }}-
ccache-${{ secrets.CCACHE_CACHE_VERSION }}-noetic-gcc-docker-

- name: Start measuring the build time
id: start-time
run: |
stamp=$(date +%s)
echo "stamp=${stamp}" >> $GITHUB_OUTPUT
uses: docker/setup-buildx-action@v3

- name: Build the ${{ env.DOCKER_RELEASE_TARGET }} image
uses: docker/build-push-action@v3
uses: docker/build-push-action@v6
with:
context: .
file: ${{ env.REPOSITORY_NAME }}/tooling/docker/full.Dockerfile
context: ${{ env.REPOSITORY_NAME }}
file: ${{ env.REPOSITORY_NAME }}/tooling/docker/ros1/full.Dockerfile
target: ${{ env.DOCKER_RELEASE_TARGET }}
build-args: |
FROM_IMAGE=${{ env.DOCKER_FROM_IMAGE }}
REPOSITORY_NAME=${{ env.REPOSITORY_NAME }}
USER_HOME=${{ env.USER_HOME }}
CATKIN_WS_PATH=${{ env.CATKIN_WS_PATH }}
CCACHE_DIR=${{ env.CCACHE_DIR }}
ROS_HOME=${{ env.ROS_HOME }}
REPOSITORY_NAME=${{ env.REPOSITORY_NAME }}
PACKAGE_NAME=${{ env.DOCKER_TARGET_ROS_PKG }}
load: true
cache-from: ${{ env.CACHE_IMAGE_NAME }}
cache-to: ${{ env.CACHE_IMAGE_NAME }},mode=max
tags: ${{ env.LOCAL_IMAGE_NAME }}

- name: Determine whether the ccache cache should be updated
id: should-writeback-ccache
run: |
runtime=$(( $(date +%s) - ${{ steps.start-time.outputs.stamp }} ))
threshold=300 # seconds
echo $runtime
answer=false
if [ $threshold -le $runtime ]; then
answer=true
fi
echo "answer=${answer}" >> $GITHUB_OUTPUT

- name: Test the ${{ env.DOCKER_RELEASE_TARGET }} image
run: docker run --rm ${{ env.LOCAL_IMAGE_NAME }}

- name: Push the ${{ env.DOCKER_RELEASE_TARGET }} image locally
uses: docker/build-push-action@v3
uses: docker/build-push-action@v6
with:
context: .
file: ${{ env.REPOSITORY_NAME }}/tooling/docker/full.Dockerfile
context: ${{ env.REPOSITORY_NAME }}
file: ${{ env.REPOSITORY_NAME }}/tooling/docker/ros1/full.Dockerfile
target: ${{ env.DOCKER_RELEASE_TARGET }}
build-args: |
FROM_IMAGE=${{ env.DOCKER_FROM_IMAGE }}
CATKIN_WS_PATH=${{ env.CATKIN_WS_PATH }}
CCACHE_DIR=${{ env.CCACHE_DIR }}
ROS_HOME=${{ env.ROS_HOME }}
REPOSITORY_NAME=${{ env.REPOSITORY_NAME }}
PACKAGE_NAME=${{ env.DOCKER_TARGET_ROS_PKG }}
push: true
cache-from: ${{ env.CACHE_IMAGE_NAME }}
tags: ${{ env.LOCAL_IMAGE_NAME }}

- name: Write back the build's ccache cache
if: steps.should-writeback-ccache.outputs.answer == 'true'
uses: docker/build-push-action@v3
with:
context: .
file: ${{ env.REPOSITORY_NAME }}/tooling/docker/full.Dockerfile
target: workspace-deps-builder-ccache-extractor
build-args: |
FROM_IMAGE=${{ env.DOCKER_FROM_IMAGE }}
USER_HOME=${{ env.USER_HOME }}
CATKIN_WS_PATH=${{ env.CATKIN_WS_PATH }}
CCACHE_DIR=${{ env.CCACHE_DIR }}
ROS_HOME=${{ env.ROS_HOME }}
REPOSITORY_NAME=${{ env.REPOSITORY_NAME }}
PACKAGE_NAME=${{ env.DOCKER_TARGET_ROS_PKG }}
push: true
cache-from: ${{ env.CACHE_IMAGE_NAME }}
tags: ${{ env.LOCAL_IMAGE_NAME }}
outputs: type=local,dest=ccache

- name: Extract metadata to annotate the image
id: meta
Expand All @@ -174,18 +114,16 @@ jobs:

- name: Publish the ${{ env.DOCKER_RELEASE_TARGET }} image
if: startsWith(github.event.ref, 'refs/tags/v')
uses: docker/build-push-action@v3
uses: docker/build-push-action@v6
with:
context: .
file: ${{ env.REPOSITORY_NAME }}/tooling/docker/full.Dockerfile
context: ${{ env.REPOSITORY_NAME }}
file: ${{ env.REPOSITORY_NAME }}/tooling/docker/ros1/full.Dockerfile
target: ${{ env.DOCKER_RELEASE_TARGET }}
build-args: |
FROM_IMAGE=${{ env.DOCKER_FROM_IMAGE }}
REPOSITORY_NAME=${{ env.REPOSITORY_NAME }}
USER_HOME=${{ env.USER_HOME }}
CATKIN_WS_PATH=${{ env.CATKIN_WS_PATH }}
CCACHE_DIR=${{ env.CCACHE_DIR }}
ROS_HOME=${{ env.ROS_HOME }}
REPOSITORY_NAME=${{ env.REPOSITORY_NAME }}
PACKAGE_NAME=${{ env.DOCKER_TARGET_ROS_PKG }}
push: true
cache-from: ${{ env.CACHE_IMAGE_NAME }}
tags: ${{ steps.meta.outputs.tags }}
Expand All @@ -199,17 +137,27 @@ jobs:
image: ${{ needs.build-image.outputs.image }}
steps:
- name: Fetch the package's repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Install dependencies (doxygen+sphinx+breathe+exhale toolchain)
run: |
apt-get update
apt-get install -q -y --no-install-recommends python3-pip doxygen
apt-get install -q -y --no-install-recommends latexmk texlive-latex-extra tex-gyre texlive-fonts-recommended texlive-latex-recommended
pip3 install exhale sphinx-sitemap
pip3 install exhale sphinx-sitemap sphinx-design
pip3 install sphinxawesome-theme --pre
pip3 install "sphinx<7,>6"

- name: Parse C++ library with Doxygen
working-directory: ${{ env.CATKIN_WS_PATH }}/src/${{ env.REPOSITORY_NAME }}/docs
shell: bash
run: doxygen Doxyfile_cpp

- name: Parse ROS1 interface with Doxygen
working-directory: ${{ env.CATKIN_WS_PATH }}/src/${{ env.REPOSITORY_NAME }}/docs
shell: bash
run: doxygen Doxyfile_ros1

- name: Build documentation site
working-directory: ${{ env.CATKIN_WS_PATH }}/src/${{ env.REPOSITORY_NAME }}/docs
shell: bash
Expand Down
Loading
Loading