Build images with and without GUI tools

Right now, the build process takes over 3 hrs to build on our QEMU emulated arm systems, which is over the time allocated per job, and produces a massive build with dependencies not everyone needs. This PR fixes both our issues: it splits up the build into two parts, resulting in a reduced build time for each stage, and more choices on the user side.

As of this PR, things work like this:

  • A normal trunk (and r1234 tag) is built without GUI tools for each arch.
  • After the smaller image is built, the trunk-gui (and r123-gui tag) is built, again for each arch, this time with GUI tools enabled. The resulting image is much larger, but has the complete suite of MOOS tools ready to use.
  • Tests are run
  • The base and GUI images are pushed to registries.

Possible Use Case: The GUI image is used for a shoreside console with X forwarding, which can afford the space penalties. The robot has the minimal image, which is smaller due to not needing the X / GUI overhead.

This may break downstream builds, the Docker memo has not yet been published, and we warn that using trunk in production is a bad idea, it likely won't affect many. AFAIK I'm the only one that uses the images in anything resembling production thus far. If that isn't true I'd love to hear it though :)

Merge request reports

Loading