roboticslab-uc3m / vision

Vision processing
https://robots.uc3m.es/vision/
11 stars 7 forks source link

Prepare Docker image for CI #107

Closed PeterBowman closed 4 months ago

PeterBowman commented 3 years ago

CI support via GitHub Actions was added at https://github.com/roboticslab-uc3m/vision/commit/f87fbd1cdb45cd8764d1b1e88e4d16724438f4ad. 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:

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?

jgvictores commented 3 years ago

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:

PeterBowman commented 2 years ago

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

PeterBowman commented 4 months ago

Info:

PeterBowman commented 4 months ago

Done at https://github.com/roboticslab-uc3m/vision/commit/738078a20e2e6497fba53cffd47920052fc3ba50. A new workflow builds the Dockerfile and pushes its image to GHCR. It is available here in two flavors:

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.