The script by Neels Hofmeyr <nhofmeyr@sysmocom.de> has actually nothing
to do with libosmocore itself - it's a generic build-time check used by
jenkins so it should be part of this repo to avoid extra checkout of
libosmocore just for this script.
Change-Id: I079218b61f512975ec5bfc7dc23503ec369cbb5a
jenkins job builder is a python library to write jenkins jobs in .yml or
.json including templating and basic substition operation.
To update the job call:
Create your own jenkins_jobs.ini based on the exmaple and call
jenkins-jobs --conf ./jenkins_jobs.ini update osmocom-nightly-nitb-split.yml
Change-Id: Ie7c655c6e0e3761e7970e479cadb5ae14faa2c1c
Basically, osmo-build.sh holds logic to check whether the necessary
artifact is available. If so it fetches artifact, unpacks it and
triggers the actual build. In case the necessary artifact is not
available osmo-build.sh simply builds all dependencies from source
by using osmo-build-dep.sh and archives deps to the ARTIFACT_STORE
afterwards.
The necessary functions to determine the artifact name from remote and
local repositories as well as the handling of artifact files live in
osmo-artifacts.sh, which is sourced by osmo-build.sh.
osmo-build.sh will be sourced by the contrib/jenkins.sh build script
inside each git repository. This automatically triggers the build,
so one need to source at the end of each jenkins.sh script.
See jenkins-openBsc.sh [1] for more details.
Artifacts will be stored as follows:
$ARTIFACT_STORE/$JOB_NAME/<dep_1>.<branch_1>.<rev_1>_...
..._<dep_n>.<tag_n>.tar.gz
Furthermore, ARTIFACT_STORE environment variable has to be set on all
jenkins slaves. The JOB_NAME variables is injected to each jenkins job
by jenkins.
[1] https://github.com/blobbsen/diy-artifacts/blob/master/jenkins-openBSC.sh
Change-Id: Ifee0a2f837d23b19aa5326f810234d5452e47484
Several of the supported BTS models require hw-specific L1 headers for
compilation which are stored in separate repository. Instead of
copy-pasting code which obtains those header for each BTS it's better to
create separate script.
Change-Id: I840533d5bf9233822bc0534a25c252f1cab0a7b0
Related: SYS#3682
Move the script here from
http://jenkins.osmocom.org/jenkins/job/Osmocom_nightly_packages/
The jenkins job shall call this script instead.
One change: instead of 'rm -rf *', rather check for an empty dir, to not
endanger valuable data a user may have around when invoking this script out of
curiosity.
Rebasing the iu branches onto the master branches is currently not happening
regularly, since I'm focusing on the VLR. Rather scan the master branches so
that the coverity issues are caught without further rebase effort required.
Comment out everything Iu related with '#IU' comment markers:
- don't checkout Iu branches
- don't build osmo-iuh (depends on libosmo-sccp iu branch)
- don't pass --enable-iu to openbsc, don't switch branches for osmo-bts
We might consider adding a separate Iu build, but then we might get the same
coverity warnings twice, so not pursuing that actively now.
Change-Id: I0d6640b893b8d65d321af904b80d89da5bf3ea6a
I've been asked at least twice what the contents of the expected env
vars should be, so log an example on error.
Change-Id: I635752e6033c57bfce90d8b0732bc402bf3014c8
During the recent refactorings, I need to edit the jenkins build config at the
right time to apply renames. To make this easier in the future, add an explicit
(so far trivial) entry point for jenkins that can just be updated from git.
Change-Id: I8de9444df513b3aaaddb07b383e458186237dfab
The combined Osmocom build is able to scan across all libraries at the same
time and can find more errors, making the submission of single projects for
scan obsolete.
Change-Id: I24c55d10b587837fe3e3ff6089715e6896c12dcf
This corresponds to the scan.coverity project name this is uploaded to.
Also apply renaming in file content: call renamed build_Osmocom.sh, use dir
source-Osmocom and install-Osmocom, use a token named 'Osmocom'.
The point is that the combined build of all osmocom projects finds problems
more accurately, since coverity can analyse across all libraries at the same
time.
Still build the iuh branches, since they are basically an extension of the
current master branches (given that they are rebased onto master regularly,
which they currently are).
Name the generated tar Osmocom.tgz instead of myproject.tgz.
Change-Id: If316d54327cca8aa1b499bf35b6b22385bd83702
An upstream branch rebase caused a merge conflict on the build server
recently. This hopefully avoids that next time.
Change-Id: Ib9f48b3b2283d1b8d1a79d42732d935236a2b1c9
This allows having the coverity scripts in a different location than
~/coverity. In particular, this allows just cloning the osmo-ci anywhere, e.g.
having ~/osmo-ci/coverity as the build location.
Change-Id: I100cc763b06562dbeaea11c7175f3c92fc01117a
Create a clean build environment for amd64/i386 based on debian
jessie. Once an official build and sadly once someones 32bit build
# Build
sudo docker build -t osmocom:ci_debian8_32bit -f Dockerfile.deb8_i386 .
sudo docker build -t osmocom:ci_debian8_64bit -f Dockerfile.deb8_amd64 .
# Run
sudo docker run -it --rm=true osmocom:ci_debian8_32bit bash