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

Prepare Docker image for CI #107

Closed
PeterBowman opened this issue May 7, 2021 · 4 comments
Closed

Prepare Docker image for CI #107

PeterBowman opened this issue May 7, 2021 · 4 comments

Comments

@PeterBowman
Copy link
Member

CI support via GitHub Actions was added at f87fbd1. Currently, some components are excluded from the build due to unmet dependencies, which ultimately boils down to not having OpenCV compiled from sources. Instead, we consume the official libopencv-dev apt package. For reference, OpenCV 3.2.0 is provided in Bionic, and 4.2.0 in Focal.

These components are:

  • DnnDetector: the dnn module was not bundled with the apt package until the 4.0 release.
  • QrDetector: requires OpenCV 4.x, yet additional linkage is necessary against an external library (QUIRC).
  • sceneReconstruction: requires the rgbd module from opencv_contrib and enabling support for non-free algorithms.

Idea: prepare a Docker image that contains the most adequate OpenCV release with all necessary modules and dependencies, and upload it to https://github.com/orgs/roboticslab-uc3m/packages for use in CI via GH Actions in this repo.

Note that it is actually interesting to have several OpenCV versions to test against, especially the 3.x one. Doable via Docker tags?

Besides, such image would not be that useful beyond CI. Perhaps we could go a step further and prepare another one that contains a working build of roboticslab-uc3m/vision libraries and tools?

@PeterBowman PeterBowman added this to To do in [ROBOTICSLAB] via automation May 7, 2021
@jgvictores
Copy link
Member

Besides, such image would not be that useful beyond CI. Perhaps we could go a step further and prepare another one that contains a working build of roboticslab-uc3m/vision libraries and tools?

I believe that the Docker image, even without a working build of roboticslab-uc3m/vision libraries and tools, would be useful for user land. Two use cases:

  • In the case of compiling roboticslab-uc3m/vision, if I'm not getting everything wrong and the equivalence not too is far-fetched, I'd say this is similar to what you achieve with a apt-get build-dep workflow.
  • We also have some parallel developments going on in ROS world, which installs its own version of OpenCV. Help for compiling against modern OpenCV with Dnn and Qr would be excellent.

@PeterBowman
Copy link
Member Author

Might be useful: https://github.com/Jimver/cuda-toolkit (a GH action to install CUDA).

@PeterBowman PeterBowman self-assigned this Jun 19, 2024
@PeterBowman PeterBowman moved this from To do to In progress in [ROBOTICSLAB] Jun 19, 2024
@PeterBowman
Copy link
Member Author

Done at 738078a. A new workflow builds the Dockerfile and pushes its image to GHCR. It is available here in two flavors:

  • docker pull ghcr.io/roboticslab-uc3m/vision:ubuntu-20.04-opencv-4.x
  • docker pull ghcr.io/roboticslab-uc3m/vision:ubuntu-22.04-opencv-4.x

Latest OpenCV's 4.x branch is built in it (currently 4.10) along with all apt dependencies (most notably, PCL). Our CI builds now pull this image and run all tests against a temporary container.

[ROBOTICSLAB] automation moved this from In progress to Done Jun 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
[ROBOTICSLAB]
  
Done
Development

No branches or pull requests

2 participants