-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
feat(docker): integrate cuda
/no-cuda
jobs into single job
#5363
Conversation
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
This reverts commit 0c7459d.
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
d63ab93
to
37adf25
Compare
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
One of the purposes of this PR is rather to stop the matrix, because in this organization, there is currently only one arm64 self-hosted runner available, and using the matrix would require double the execution time. |
@youtalk, thank you for the quick action and response, I understand (and agree) with the feedback. (I'm unable to resolve my own comments, sorry) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@youtalk I think in overal terms the PR solves the complicated nature of docker-build workflows and better utilizes the cache by seperating CUDA and non-CUDA builds.
But in the other hand Dockerfile would become rather complicated to track and maintain, since it is not preferrable to have multiple Dockerfiles I suggest putting some of the recurring scripts to a directory.
For example:
docker/
├── Dockerfile
├── scripts/
│ ├── install-rosdep-dependencies.sh
│ ├── build-ros-packages.sh
│ └── cleanup.sh
└── etc/
└── ros_entrypoint.sh
I think this kind of improvement can be done in a seperate PR, and I can draft a PR for that after this PR.
And also with this PR we are not doing health-check builds with CUDA anymore as i can understand or am i missing something ? And if so would it miss some CUDA related build fails ?
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp>
@oguzkaganozt I've fix a minor cache problem c009784. I hope the CI jobs will be succeeded. https://github.com/autowarefoundation/autoware/actions/runs/11718481450 @mitsudome-r @xmfcx ![]() |
Removed ✔️ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* chore(docker): remove `/autoware/log` after `colcon build` (autowarefoundation#5329) * chore(.github): always run `Show disk space` (autowarefoundation#5354) always show disk space Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * build(autoware.repos): remove ament_cmake fork repository (autowarefoundation#5360) Signed-off-by: Chengyong Lin <stclin@qq.com> * fix: remove `ndt_omp` (autowarefoundation#5390) Removed ndt_omp Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * fix: change the organization of `awsim_sensor_kit_launch` from RobotecAI to tier4 (autowarefoundation#5403) Fixed organization of `awsim_sensor_kit_launch` from RobotecAI to tier4 Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * chore(.devcontainer): rename `.devcontainer` directories (autowarefoundation#5407) rename .devcontainer dirs Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * feat(docker): integrate `cuda`/`no-cuda` jobs into single job (autowarefoundation#5363) --------- Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> Signed-off-by: Chengyong Lin <stclin@qq.com> Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> Co-authored-by: chgyg <99009754+ChgygLin@users.noreply.github.com> Co-authored-by: SakodaShintaro <rgbygscrsedppbwg@gmail.com> Co-authored-by: SakodaShintaro <shintaro.sakoda@tier4.jp>
@mitsudome-r @xmfcx Please add a required check for |
@youtalk -san, Do you mean to add But that workflow only runs on:
not every PR. What should I do then? |
Sorry, I've just realized it was part of the health-check. |
@xmfcx Thank you! |
* chore(docker): remove `/autoware/log` after `colcon build` (autowarefoundation#5329) * chore(.github): always run `Show disk space` (autowarefoundation#5354) always show disk space Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * build(autoware.repos): remove ament_cmake fork repository (autowarefoundation#5360) Signed-off-by: Chengyong Lin <stclin@qq.com> * fix: remove `ndt_omp` (autowarefoundation#5390) Removed ndt_omp Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * fix: change the organization of `awsim_sensor_kit_launch` from RobotecAI to tier4 (autowarefoundation#5403) Fixed organization of `awsim_sensor_kit_launch` from RobotecAI to tier4 Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> * chore(.devcontainer): rename `.devcontainer` directories (autowarefoundation#5407) rename .devcontainer dirs Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * feat(docker): integrate `cuda`/`no-cuda` jobs into single job (autowarefoundation#5363) * chore(.github): rename `bake-target` to `target-image` and add descriptions to args (autowarefoundation#5413) * rename target-image and add descriptions Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix feedback Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> --------- Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * feat(docker): install CUDA development/runtime libraries only 1 time (autowarefoundation#5419) * add base-cuda Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * update svg Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * not cache cuda packages Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * push base-cuda image Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * Update docker-build-and-push.yaml * Update docker-build-and-push-arm64.yaml * separate jobs Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> --------- Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * refactor(docker): replace the multiple `rosdep` commands with `resolve_rosdep_keys.sh`. (autowarefoundation#5424) * run resolve_rosdep_keys.sh Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * style(pre-commit): autofix * update .dockerignore Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * chmod +x Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix location Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * remove rosdep update Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> --------- Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * refactor(docker): replace the multiple `colcon` commands with `build_and_clean.sh`. (autowarefoundation#5425) * run resolve_rosdep_keys.sh Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * style(pre-commit): autofix * update .dockerignore Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * chmod +x Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * fix location Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * remove rosdep update Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * run build_and_clean.sh Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * style(pre-commit): autofix --------- Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> * refactor(docker): replace the multiple `rm -rf` commands with `cleanup_system.sh`. (autowarefoundation#5426) * fix(.github): fix `target-image` (autowarefoundation#5428) fix target-image Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> * chore: remove tvm_utility artifacts from Ansible tasks (autowarefoundation#5427) Signed-off-by: Esteve Fernandez <esteve.fernandez@tier4.jp> --------- Signed-off-by: Yutaka Kondo <yutaka.kondo@youtalk.jp> Signed-off-by: Chengyong Lin <stclin@qq.com> Signed-off-by: Shintaro Sakoda <shintaro.sakoda@tier4.jp> Signed-off-by: Esteve Fernandez <esteve.fernandez@tier4.jp> Co-authored-by: chgyg <99009754+ChgygLin@users.noreply.github.com> Co-authored-by: SakodaShintaro <rgbygscrsedppbwg@gmail.com> Co-authored-by: SakodaShintaro <shintaro.sakoda@tier4.jp> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Esteve Fernandez <33620+esteve@users.noreply.github.com>
Description
Resolved #5082
As a result of the activity autowarefoundation/autoware_universe#8695, the only packages dependent on CUDA are the
sensing/perception
components ofautoware.universe
. Therefore, the container images with the-cuda
suffix are actually only needed foruniverse-sensing-perception-devel
anduniverse-sensing-perception
.Additionally, since there is currently only one arm64 self-hosted runner, the
no-cuda/cuda
jobs in thedocker-build-and-push-arm64
workflow experience double the waiting time.This PR consolidates the
no-cuda/cuda
jobs and changes the process so that only the CUDA dependent packages in thesensing/perception
component are built in an additional stage.Tests performed
https://github.com/autowarefoundation/autoware/actions/runs/11718481450
https://github.com/autowarefoundation/autoware/actions/runs/11718483615
Effects on system behavior
Not applicable.
Interface changes
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.
In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
After all checkboxes are checked, anyone who has write access can merge the PR.