-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Optimize dockerfile (building and caching) (#294)
* Introduce multistage dockerfile for build process (core only) * Update .dockerignore * Update README * Do not apt update at build time internet should not be required when compiling * Use apt-get instead of apt as apt does not have a stable CLI and thus unsuitable for scripting - https://unix.stackexchange.com/a/590703/213124 * Automate apt-get yes prompts for non-interactive scripting * Use placeholder stage for dependabot automation * Rename stages uniquely for locatability and mark for readability * Move ARG to appropriate scope to avoid needless busting build cache of unrelated stages * Disable internet for build time to flush out all non-determinism given offline caching is impractical otherwise * Edit apt config for caching and update once * Bootstrap and cache tools for install scripts * Add missing implicit dependency * Add pseudo code to install dependencies only in pepper stage * Add dependabot config For both docker and github actions. This should: - auto open a PR when new nvidia tags are available - as well as keep Github actions versions up to date * Simplify docker ignore config by inverting exclusion set to robustly ignore randomly named IDE files and temp folders * Exclude .git from .dockerignore Required by cmake_git_version_tracking * Separate dependencies script from compilation script * WIP - RGL extensions handling * Add ROS2 installation * Add build command argument * Add ros2 standalone libs and rgl executables to exporter * Fix pcl deps * Fix ros2 extension compilation * Fix CMakeLists for tests * Add ORIGIN rpath to test/tools executables * Do not change current working directory for extension install_deps scripts * Improve docs * Bring back support for taped test * Formatting * Adjust CI * Add dependencies installation info to README * Ignore Dockerfile in .dockerignore * Remove unused components from CI * Fix CI * Output libraries to lib folder * Output executables to bin folder * Simplify exporter stage by cache dancing * Formatting alpha sort * Output libraries to lib folder kind of hacky should probably simplify using better CMake * Simplify ROS install as timezone and LC_ALL setup is more for running and shouldn't be needed if only just building * Simplify ROS install remove unnecessary packages * Formatting * Use ROS_DISTRO ARG and set ENV if ever needed for later after docker build * Drop pinned package version * Formatting * Simplify ROS install by using minimal build dependency set * Alpha sort package sub lists * Simplify RUN directive via shell * Simplify RUN directive via shell * Revert to installing core as `radar_msgs` has a number of other msg dependencies though rosdep should eventually be used here * Formatting * Avoid hard coded ubuntu code name * Simplify RUN directives * Cache apt update * Format package use septate lines for version control * Update README.md Co-authored-by: Mateusz Szczygielski <[email protected]> * Revert "Remove Disable DNS" This partially reverts commit 74317d5. * Simplify CMake for INSTALL_DESTINATION_DIR * Revert "Revert "Remove Disable DNS"" This reverts commit 32016bb0b0683769fefd0962ab32d67ca968ae8a. * Add missing dep for ros2-standalone * Adjust CI * Fix CI: use dot instead of source * Fix CI: source sh file * Improve ROS2 check * Use new dev docker to test * Fix formatting (some packages weren't installed) * Use ROS_DISTRO instead of fixed version --------- Co-authored-by: ruffsl <[email protected]>
- Loading branch information
Showing
17 changed files
with
610 additions
and
428 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,19 @@ | ||
.vs | ||
.vscode | ||
Builds/* | ||
Testing/* | ||
.idea | ||
cmake-build-debug | ||
cmake-build-release | ||
build | ||
external/vcpkg | ||
# Ignore everything by default | ||
* | ||
|
||
# First-order allow exception for select directories | ||
!/.clang-format | ||
!/.githooks | ||
!/.git | ||
!/CMakeLists.txt | ||
!/docs | ||
!/extensions | ||
!/extensions.repos | ||
!external/CMakeLists.txt | ||
!/include | ||
!/ros2_standalone | ||
!/setup.py | ||
!/install_deps.py | ||
!/src | ||
!/test | ||
!/tools |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "docker" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" | ||
commit-message: | ||
prefix: "🐳 " | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" | ||
commit-message: | ||
prefix: "🛠️ " |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.