Rationale for having master builds in docker containers?

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Oliver Smith osmith at sysmocom.de
Fri Dec 7 10:58:22 UTC 2018


Hi,

> 1) build all projects, or at least all projects that have dependencies on other
>    [osmocom] projecst inside docker, not some on the build slave and some in a container

+1

> 
> 2) have a process by which the container images are re-built.  Right now those appear
>    to be still jessie-based, for example.  It's good to test both jessie and stretch,
>    of course, but doing some project builds on either of the two doesn't really ensure
>    compatibility for both versions.  We should either build everything on both stretch
>    and jessie, or one defined version.

I thought there is a defined process already. All Jenkins jobs generated
by gerrit-verifications.yml and master-builds.yml use the
"osmocom:amd64" image, which is defined here:

osmo-ci.git/docker/Dockerfile_osmocom_jenkins.amd64

It gets rebuilt automatically for all buildbots, whenever changes to
osmo-ci.git are made:
https://jenkins.osmocom.org/jenkins/job/update-osmo-ci-on-slaves/

With a few more details, I had documented the process as I understood it
here:
https://osmocom.org/projects/osmocom-servers/wiki/Jenkins_build_verification_jobs

> 3) ensure that gerrit and master builds run in identical environments.  This reduces
>    the risk of patches passing gerrit but failing in master.

Assuming we use Docker for all builds, then this should be solved (as we
are using the same image already).

> Regarding the "deployment" of artifacts like pdf manuals or binary firmware
> builds, I would say it's best to move that into a separate post-build action
> inside jenkins, one that happens outside e.g. the docker image.  This would
> mean we mount some "output" directory from the build slave into the container
> where the artifacts are stored to persist beyond the "--rm" docker container.
> 
> From there, we should be able to scp/rsync/... the artefact to the [ftp] server,
> using e.g. SSH agent forrwarding with credetials provided by the server.

Sounds good. (Implementation details: the entire build folder is
actually mounted inside Docker, so it is writing all build results to
the host system. But we clean it up with "osmo-clean-workspace.sh" from
osmo-ci.git/scripts before and after each build, hence the built pdfs do
not remain. But I'm sure we can find a way to keep the artifacts, no
need to discuss that here in detail.)

Regards,
Oliver
-- 
- Oliver Smith <osmith at sysmocom.de>            https://www.sysmocom.de/
=======================================================================
* sysmocom - systems for mobile communications GmbH
* Alt-Moabit 93
* 10559 Berlin, Germany
* Sitz / Registered office: Berlin, HRB 134158 B
* Geschaeftsfuehrer / Managing Director: Harald Welte



More information about the OpenBSC mailing list