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_verificatio…
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(a)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