Skip to content

Fix CI for base and control Docker images#199

Open
aryanrajvanshi wants to merge 7 commits intoKumarRobotics:masterfrom
aryanrajvanshi:master
Open

Fix CI for base and control Docker images#199
aryanrajvanshi wants to merge 7 commits intoKumarRobotics:masterfrom
aryanrajvanshi:master

Conversation

@aryanrajvanshi
Copy link

Summary

This PR restores a working CI signal for the Docker-based workflows in kr_autonomous_flight, starting with the base image and extending to the control image which depends on it.

The primary goal was not to modernize the entire pipeline, but to debug and fix failure modes caused by repository age, outdated GitHub Actions, and infrastructure assumptions that no longer hold.

Changes

docker-build-base

  • Updated GitHub Actions to supported versions
  • Removed assumptions about DockerHub credentials being present for CI runs
  • Ensured the workflow can build successfully without pushing images
  • Restored runner compatibility so jobs no longer hang waiting for runners

docker-build-control

  • Fixed build failures caused by outdated ROS package metadata and expired signing keys
  • Updated build steps to reliably install dependencies again
  • Verified the image builds correctly once the base image succeeds

Debugging Process

  • Identified CI failures caused by jobs hanging indefinitely due to outdated runner/action usage
  • Isolated the base image as the root dependency blocking downstream builds
  • Iteratively fixed CI configuration first, then addressed real Docker build failures
  • Validated fixes by manually triggering workflows and reviewing logs

Notes

This was one of my first experiences debugging a CI system of this size. I focused on restoring correctness and clarity while keeping changes minimal and well-scoped.

Updated actions to their latest versions and adjusted steps for Docker build process.
Updated Docker build workflow to conditionally login and push based on repository name.
Updated the Docker workflow to use the latest Ubuntu version and modified the build step to push only on upstream.
Added QEMU setup for cross-platform builds and updated platforms conditionally based on the repository.
Added steps to fix ROS apt repository key to prevent errors during installation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant