Commit 3021cb32 authored by Emma Anholt's avatar Emma Anholt Committed by Marge Bot
Browse files

docs: Document how to interact with docker containers.



There's some text in gitlab-ci.yml, but expand on things a bit here.
Reviewed-by: Eric Engestrom's avatarEric Engestrom <eric@engestrom.ch>
Reviewed-by: Erik Faye-Lund 's avatarErik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <!5510>
parent 21e6d67a
Pipeline #173745 passed with stages
in 26 minutes and 15 seconds
...@@ -125,3 +125,35 @@ things back up. If this happens, the farm maintainer should provide a ...@@ -125,3 +125,35 @@ things back up. If this happens, the farm maintainer should provide a
report to mesa-dev@lists.freedesktop.org after the fact explaining report to mesa-dev@lists.freedesktop.org after the fact explaining
what happened and what the mitigation plan is for that failure next what happened and what the mitigation plan is for that failure next
time. time.
Docker caching
--------------
The CI system uses docker images extensively to cache
infrequently-updated build content like the CTS. The `freedesktop.org
CI templates
<https://gitlab.freedesktop.org/freedesktop/ci-templates/>`_ help us
manage the building of the images to reduce how frequently rebuilds
happen, and trim down the images (stripping out manpages, cleaning the
apt cache, and other such common pitfalls of building docker images).
When running a container job, the templates will look for an existing
build of that image in the container registry under
``FDO_DISTRIBUTION_TAG``. If it's found it will be reused, and if
not, the associated `.gitlab-ci/containers/<jobname>.sh`` will be run
to build it. So, when developing any change to container build
scripts, you need to update the associated ``FDO_DISTRIBUTION_TAG`` to
a new unique string. We recommend using the current date plus some
string related to your branch (so that if you rebase on someone else's
container update from the same day, you will get a git conflict
instead of silently reusing their container)
When developing a given change to your docker image, you would have to
bump the tag on each ``git commit --amend`` to your development
branch, which can get tedious. Instad, you can navigate to the
`container registry
<https://gitlab.freedesktop.org/mesa/mesa/container_registry>`_ for
your repository and delete the tag to force a rebuild. When your code
is eventually merged to master, a full image rebuild will occur again
(forks inherit images from the main repo, but MRs don't propagate
images from the fork into the main repo's registry).
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment