dependency artifacts for faster builds/gerrit-verifications

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/.

André Boddenberg dr.blobb at gmail.com
Tue May 2 17:59:35 UTC 2017


Hi all,

here's a (late) recap on the "dependency-artifacts" topic discussed
with Holger and Neels at OsmoDevCon.


The "mv $artifact"-issue, which occurs when run within a docker
container has been resolved. Now artifacts are created inside a
temporary directory within the ARTIFACT_STORE and not inside the
Docker container, so the "mv" command won't take as long as a "cp"
anymore.

Moreover, artifacts are now stored per jenkins job and not per git
project. A JOB_NAME-directory inside the ARTIFACT_STORE is created for
each jenkins job to distinguish between them. This means artifacts
aren't shared across jobs which build the same git project. This might
change in the future, but is safe for now as some jenkins jobs might
need dependencies built with different configurations.

Note: the necessary disk space for openBSC artifacts of one
matrix-configuration job is ~400 MB (~50 MB per axis).

Furthermore, each jenkins job takes care about garbage collection on
its own by simply deleting the entire content of its
JOB_NAME-directory inside the ARTIFACT_STORE.


The two scripts osmo-{build,artifacts}.sh have been tested [1][2],
shellcheck'ed and pushed to gerrit [3].

The following actions are pending to enable the use of artifacts
inside contrib/jenkins.sh within each git repository, but can not be
applied by me:

  - setting ARTIFACT_STORE environment variable for each jenkins slave
  - copying osmo-artifact.sh and osmo-build.sh to ~/bin of each slave user
  - adding a new docker volume for the ARTIFACT_STORE to the image

But, let's review first. =)


Cheers,
  André

[1] https://jenkins.blobb.me/job/openBSC_multi-configuration_withArtifacts_testRefactoring/IU=--disable-iu,MGCP=--enable-mgcp-transcoding,SMPP=--disable-smpp,label=masterSlave/57/consoleFull
[2] https://jenkins.blobb.me/job/openBSC_multi-configuration_withArtifacts_testRefactoring/IU=--disable-iu,MGCP=--disable-mgcp-transcoding,SMPP=--enable-smpp,label=masterSlave/58/consoleFull
[3] https://gerrit.osmocom.org/#/c/2465/



More information about the OpenBSC mailing list