Prepare the repo-install-test to be extended to cover centos8 as well.
Move the scripts to osmo-ci.git first, so we can mount them as shared
files into the docker containers from here.
Move files without any changes. Integration will be done in a follow-up
commit, so we have a clean git log.
debian-repo-install-test/jenkins.sh
=> scripts/repo-install-test.sh
debian-repo-install-test/testdata/blacklist.txt
=> scripts/repo-install-test/blacklist.txt
debian-repo-install-test/testdata/repo-install-test.sh
=> scripts/repo-install-test/run-inside-docker.sh
Related: OS#4563
Related: If93f37e8d46597a9abc67a4529be9addd65780f5 (docker-playground)
Change-Id: Ia678cc15e66630bd6b75b6c89bc75c1e27afd66c
The list is incomplete, and we have a programmatic check for required
binaries in common-obs.sh now. The next patch will add a new one of
these scripts, so let's clean it up a bit.
Change-Id: Ifab635e0d7a162142a8e80f3223d024888114f3f
Add a patch to replace libwxgtk3.0-dev with libwxgtk3.0-gtk3-dev in
debian/control. Adjust OBS scripts to apply such patches from this
repository if they exist here, and fall back to the project's
repository (osmo-trx, osmo-gsm-manuals patches are there).
Related: OS#4562
Change-Id: I8dfb60e999bf9f61e6cd11983dba033a4c6107ad
Refactor checkout_copy_debian8_jessie from osmocom-latest-packages.sh
and osmocom-nightly-packages.sh to take the distribution name as
argument and merge both to osmo_obs_checkout_copy in common-obs.sh.
Use debian8 as distribution name instead of debian8-jessie, so the
distribution name matches the suffix of the patch file
(build-for-debian8.patch).
A follow-up commit will apply a debian10 specific patch with this new
function.
Related: OS#4562
Change-Id: I2b69571ebc08a920c9147ce544fa8a2e6d950e65
Prevent the following error:
ERROR: please install obs-service-format_spec_file or use the --noservice option
Build step 'Execute shell' marked build as failure
Related: https://jenkins.osmocom.org/jenkins/job/Osmocom_OBS_latest/976/console
Change-Id: Ib2fbaace47b3c12462860419f19b01a5b4d192e8
osmocom-*-packages.sh take some time to execute and has quite a few
programs that are not commonly installed. Check the required
dependencies first, so it doesn't abort in the middle of the scripts if
these are missing. I just ran into this with the new meson dependency.
Change-Id: I46cf1aeedd61dbd4fc8fa3f24c60e29033339ead
sdcc does not build for centos 8 without diving deeper into the
dependency hell:
nothing provides gputils,
nothing provides python3-base,
nothing provides inkscape,
nothing provides lyx,
nothing provides makeinfo
So let's not build libusrp for centos 8 for now. We can build osmo-trx
without the usrp1 backend (already configured in the spec.in file).
Related: OS#4550
Change-Id: Icfb289b0eeeb7215d23517fb8a4e56f2a8d774f1
Use existing osmocom-*-packages.sh scripts to add RPM spec.in files. Set
the same version, as in the debian .dsc files.
Related: OS#4550
Change-Id: If93b9d95e4c18cf1c29594c0802cbffaea27101c
Let's use the osmo-gsm-tester docker image based on the
debian-stretch-jenkins instead of the later directly, since the former
has all osmo-gsm-tester required dependencies.
Change-Id: I256eeed82eef0969d93dc015e043b0417f56f52c
It's been noted that jenkins job update-osmo-ci-on-slaves succeeds even
if make script called by some children function fails:
"""
../make/Makefile:57: recipe for target 'docker-build' failed
make: *** [docker-build] Terminated
make: Leaving directory '/home/osmocom-build/osmo-ci/_docker_playground/debian-stretch-jenkins'
+ exit 1
Finished: SUCCESS
"""
Change-Id: Iab9bc49eebee0f42657ff3ab5ffaa10315446440
This is unfortunately harder than expected. The problem is the use
of meson external dependencies using 'wrap', specifically for
freeDiameter.
As a debian source package needs to include the entire source, the
dpkg helpers are calling 'meson --wrap-mode=nodownload' at build time.
This in turn requires us to download the freeDiameter after the git
clone of open5gs. Unfortunately this creates a git checkout in a
sub directory of the open5gs repo, which is not part of the git history.
git-buildpackage hence generates a source tarball *without*
freeDiameter. I tried very hard in several methods like
* git commit subprojects/freeDiameter
* adding subprojects/freeDiameter as git submodule
unfortuantely none of them helped.
In the end, I resorted to using 'dpkg-buildpackage' instead of
'git-buildpackage' (gbp), which then has other disadvantages,
such as not being able to determine the output directory to which
the .tar.* and .dsc files are written to.
In the end, the solution implemented here is the only one I could
make work.
Change-Id: I6752288868e5ee1378c0776b1be9f06750017c41
Work around "garbage at end of loose object" errors that occasionally
cause these jenkins jobs to fail.
A few repositories are not hosted on gerrit, so they still get cloned
from git.osmocom.org. However, having almost all repositories cloned from
gerrit should improve the situation a lot.
Related: OS#4083
Change-Id: Id8f08a1bc10d6c81be9ad44c60646e2ea9f6cf4e
Run contrib/jenkins.sh in erlang repositories, that were recently
updated (osmo_gsup, osmo_dia2gsup, osmo_ss7).
Depends: docker-playground Ia3eaec6090c9652549b2850de74ee21730374bbd
Related: OS#4345
Change-Id: I05d152de6b7a04dee935d79b9987c511351eca95
Instead of building "osmocom:deb9_amd64" from this repository, build
"$USER/debian-stretch-jenkins" from docker-playground.git (same
Dockerfile). Adjust all jobs to use the new image name.
Add a new "update-osmo-ci-on-slaves-dp" jenkins job, which triggers
the existing "update-osmo-ci-on-slaves" job whenever
docker-playground.git changes.
Replace docker/rebuild_osmocom_jenkins_image.sh with
scripts/osmo-ci-docker-rebuild.sh, so we can get rid of the docker dir.
I thought about dropping the script completely, and directly writing the
two lines into contrib/jenkins.sh. But I kept the extra script for
convenience, when testing locally.
Related: OS#4345
Depends: docker-playground I125ae8a6bcabbd1f485028c79b0abacda0622c3a
Change-Id: I30a61aebcadef5536e74edd35e1c75ef77a2da9f
Make development easier by skipping fetch, checkout and reset --hard if
_docker_playground is a symlink. Document _docker_playground in
README.adoc and explain how to set up the symlink.
Change-Id: If6209ff71488d39e590f5f8506b9d73ad0314846
This is a problem e.g. with current osmo-hlr containing
"\t# FIXME: PKG_CHECK_MODULES() may return cached result here!"
Change-Id: I30d539a895bf39aaabe907be9eb52d7e4b3977a7
Some of our source files are inherited from other sources, particularly
for microcontroller firmware projects. We cannot assume they're all
clean UTF-8. Let's ignore any decoder errors when verifying log
statements and value_string arrays.
Closes: OS#4334
Change-Id: I1e19f4bc6bee46481c6ea743e8334bd4485909be
Do not set LD_LIBRARY_PATH during builds, as this causes testsuites to
use the wrong libraries.
This bug appeared with libosmocore, it gets built for master first, and
then an old version like 1.2.0. When using LD_LIBRARY_PATH, the tests
during the 1.2.0 build are executed against the libosmo*.so from
master, which causes a few tests to fail.
Change-Id: I0bfb57e418b91c298337b9426448fbcfd7bf32e6
The OBS job clones a lot of repositories from git.osmocom.org every
night, so it is a good candidate to reproduce the "garbage at end of
loose object" error we are getting sporadically.
Print exact timestamps, so we can check if there is anything related in
the server logs, when this error happens again.
Related: OS#4083
Change-Id: Ic9a6d3f0c2b8dad2661ede793c21307f1680a52e
Clone docker-playground.git, source its jenkins-common.sh and run
docker_images_require from there. This will make it possible to run
osmocom-release-tarballs.sh in a docker container, for which the
Dockerfile is stored in docker-playground.git.
Related: OS#3870
Change-Id: Ic4519ccb6978793054869862f8ca0e21d9cf5be4
Add conflicting dummy packages osmocom-nightly and osmocom-latest, and
make all packages from each repository depend on the right one.
As usually, the latest packages will only get changed when a new release
appears. So the dependency will get introduced after tagging a new
release. I have tested in an own OBS namespace, that everything works as
expected.
Related: OS#2640
Change-Id: I79c45e798c10a65443b9fb9ecb54393d1918608a
Enable in osmocom-latest-packages.sh. Check it out and create the source
package for the latest release as usually, but also create a second
version for debian 8 with adjusted dependencies (like in nightly [1]).
[1] Change-Id: I3570599ede51b974d350064f44f77e360fafd8b0
Related: OS#3899
Change-Id: Ib7251cca9116151e473798879375cd5eb48ff3ad
Since libosmocore 1.1.0 and libosmo-netif 0.5.0 are released, we can
address the TODO and build osmo-sysmon also in our latest feed.
Change-Id: I48bd5aff2ae315b6f462facea70222eb2cdd2d58
Create a compatible package for debian 8 with adjusted dependencies.
While at it, refactor create_osmo_trx_debian8_jessie() into a generic
checkout_copy_debian8_jessie() function.
Related: OS#3899
Depends: I5b9575ceb1141961e570643a5755a2bd6b6a4254 (osmo-gsm-manuals)
Change-Id: I3570599ede51b974d350064f44f77e360fafd8b0
Newer LimeSuite (at least 7557e291209fc66a78ffa74dd8314e75841f7c96) is
required to have LimeNet-Micro working properly with osmo-trx.
We update to current newest master since other fixes related to sample
rate are applied after the commit mentioned above.
Related: OS#3861
Change-Id: I62779f3bdbc4a459363a1d660d96d5f02f7763c1
Enable in osmo-nightly-packages.sh, and add as coment in
osmocom-nightly-packages.sh for now (needs a tagged release first).
Related: OS#3899
Depends: I7edb5093e5b58eb3b0f7af2376476db4026db735 (osmo-gsm-manuals.git)
Change-Id: Ideeae4f7846fa5626fe2c1f5a77e07a3c6e626fe
As of Change-Id Id5044b1835190edc948952d207a5196a18669eb1, osmo-remsim
contains Debian packaging information and hence we can build it as part
of our nightly feeds.
We're not yet enabling 'latest' builds as we need to wait for the next
libosmo-abis release for that (requires the IPA keepalive FSM).
Change-Id: Ic367dc95f46cece4bd769061af860fd82b4bd2e9
Build osmo-mgw 1.4.0 (which provides libosmo-legacy-mgcp) and install
it into a different temp dir. Allows properly building osmo-bsc 1.2.x,
as soon as a new release is tagged, which makes it use
LIBOSMOLEGACYMGCP_CFLAGS and therefore pick up the include path
properly [1].
osmo-mgw 1.4.0's "make check" doesn't pass right now, so add a check
parameter to build_repo() and disable them when building
libosmo-legacy-mgcp. The checks will get executed later, when the
depends are installed and we are building various tags of Osmocom repos,
including osmo-mgw 1.4.0.
While at it, slightly refactor build_repo() to put all arguments into
descriptive variable names (as it is getting a bit longer now).
[1]: Change-Id: Ibd7948f12da710f8ca2b8fde8870f134308eb908
Related: OS#3867
Change-Id: I63d16f8e44c14dee46e2ef3fd050a421017c56b0
Build old releases of Osmocom programs and libraries against
"master of the day" to detect breakage.
Redirect each build's output to its own log file, so it is easy to see
what is currently getting build, and what failed. On error, print the
end of the new failing build logs, along with a note to find the full
logs in the jenkins artifacts.
This initial configuration builds the last three release tags of the
Osmocom repositories against master. The configuration can be changed
easily.
Indicate known failures with "err" instead of "ERR" in the output, do
not cause them to fail the build and do not print the beginning of the
error log (it is still in the artifacts). This way, new errors stand out
and don't get overlooked among the known errors.
Related: OS#3765
Change-Id: I7cb45cc40c9930840a3d4e6a86f39e1400478ed3