Don't mount the host's osmo-ci/coverity dir in /build/osmo-ci/coverity.
The current working dir is mounted as /build, and because docker creates
the /build/osmo-ci directory structure as root, we end up with having
subdirectories created by root in our current working dir. These then
cause an error on the next run when jenkins tries to clean them up.
Fixes: 6a2451a0 ("jobs/coverity: adjust mount path to new home dir")
Change-Id: Ie0aa02d3821df6d0505748a7dd70ff67e4cf1405
With the related docker-playground patch, the home dir for the build
user has actually been changed from /home/build to /build. This doesn't
matter for all other jobs it seems, but the coverity job here fails
because it tries to access $HOME/osmo-ci/coverity.
Adjust the mount path, so it works again as expected.
Fix for:
./jenkins.sh: line 37: /build/osmo-ci/coverity/get_token.sh: No such file or directory
Related: docker-playground Ief8837bd9f89f51e66857a453f7fc4645620159f
Change-Id: If0286e10d1644464e9408db1bbf18c24f4b8d5a6
Fix osmocom-bb getting 0.1.0 as version:
osmocom-bb: has no git tags, using 0.0.0 as version
osmocom-bb: building source package 0.0.0.3621-d70e
osmocom-bb: WARNING: version from changelog (0.1.0) is higher than version based on git tag (0.0.0.3621-d70e), using version from changelog (git tag not pushed yet?)
With this patch:
osmocom-bb: has no git tags
osmocom-bb: getting version from debian/changelog
osmocom-bb: building source package 0.1.0.3621-d70e
osmocom-bb: adding debian/changelog entry (0.1.0 => 0.1.0.3621-d70e)
Change-Id: I3a284b50ca62a2faff16702b7108ca391229caf1
Add a new job that builds source packages for osmocom:nightly:asan, and
uploads them there.
It was considered whether we should instead of building a binary
repository with asan packages in OBS, just build all packages and
libraries from source at the jenkins builders. We decided against it,
see the related discussion.
Related: https://gerrit.osmocom.org/c/docker-playground/+/28902/1#message-30650d8450d2d129b6ef3f447f65e4b866d2f801
Related: OS#5301
Change-Id: I8fb6664702f85ee057377cb374394c8f24202474
Use --conflict-pkgname as package name, instead of hardcoding
osmocom-$FEED.
Fix for:
FileNotFoundError: [Errno 2] No such file or directory: '/obs/_cache/osmocom-nightly-asan'
Change-Id: I4ddb2e9adc25e7e8e8c9d17236b76d9f2e9c2a9c
Allow building binary packages faster by disabling the manuals. We don't
need those for the asan repository.
Related: OS#5301
Change-Id: I3ff84f26ee6aa53cbcbe2275bedc6b724a461adc
Add a parameter for appending arguments to the ./configure line as it
gets called in the debian package. This will be used for asan packages.
Related: OS#5301
Change-Id: I5ae396cc190559eb9c6a1671db374a91f03924e7
Prepare for building the asan repository. We don't need to build e.g.
the erlang projects for that.
Related: OS#5301
Change-Id: If02fd38da05113e28ee401d592edfc7528388308
Prepare to add more arguments, by first categorizing the existing
arguments into groups. Tweak the descriptions while at it.
Change-Id: I09a8caa885b72b9d806fbfb4c8d72fe9667feec5
Fix for:
File "/home/user/code/osmo-dev/src/osmo-ci/scripts/obs/lib/__init__.py", line 112, in check_required_programs
if not importlib.find_loader(module):
^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'importlib' has no attribute 'find_loader
Change-Id: I6430c2c4f75c8408d00305e1a1f0a64600eb086c
* etckeeper: to automatically have /etc changes versioned in git; we
already use it in various other places
* ncdu: to figure out what consumes space
* tree: list directory trees, useful to quickly check if e.g. ccache
and jenkins workspace dirs are populated properly
Change-Id: I4b0e5a21f77d0ffb60f1f3aaf91aecd08cb2fe90
Do not recommend to the user anymore to put the Osmocom jenkins server
in their global jenkins-job-builder config, as this may lead to jobs
from other repositories being deployed to the Osmocom jenkins by
accident.
Instead of that, let the user put the config in this path:
~/.config/jenkins_jobs/jenkins_jobs_osmo-ci.ini
Add a wrapper script that users this path, and makes sure that no global
config is present.
Related: SYS#6957
Change-Id: I1d7c50b2fef56e343cfe377b51f5f4304219cd22
Fix for currently failing Osmocom-release-manuals job:
:: (osmo-epdg) Getting git tags
fatal: unable to access 'https://gerrit.osmocom.org/osmo-epdg/': The requested URL returned error: 403
Change-Id: I419b2d097a1a11975e3f90b3f129d02f63bfcf9d
Add a script to easily update the eclipse-titan package from a git
repository. This replaces the previous workflow of downloading the
previous source package, modifying it, and re-uploading it. With the git
repository, it is easier to see which patches are included, and it is
easier to modify the packaging (e.g. add new patches to fix build with
latest gcc), and easier to upgrade the eclipse-titan version.
I've done this change because it failed to build with the most recent
GCC in Debian Unstable. Backporting Vadim's patch from upstream fixes
it.
Related: b5d3d5bf4f
Related: https://osmocom.org/projects/cellular-infrastructure/wiki/Upgrading_eclipse-titan_in_the_Osmocom_OBS
Change-Id: Ieb1945d5cf4abf8ae2201f49ea7dce8eb343167e
Remove ttcn3-ggsn-test-kernel-pablo-gtp, as the IPv6 GTP patches have
been merged. Add ttcn3-ggsn-test-kernel-net-next and
ttcn3-ggsn-test-kernel-torvalds instead, which run the master/nightly
version of osmo-ggsn against HEAD of the kernel trees in
netdev/net-next and torvalds/linux.
Change-Id: I3d2f26ca87f79365f4a407376b5c3c0145f729a6
osmo-bts in theory can also benefit from io_uring, at least because
it can maintain multiple RTP connections for voice calls. Let's
execute the respective testsuite with io_uring too.
Change-Id: I3af791103d863290a53c9ce2d1a8d1d9e42e91c7
It seems like various tests are failing from time to time due to the
builder having a too high load. As several ttcn3 testsuites run around 4
am already, move ttcn3-msc-test to 1 hour earlier where we don't have
anything currently.
Change-Id: I8eaf058f13f4175a458e9abe544bfb21ace481b7
Don't let packages built with gerrit_binpkgs.sh depend on an
osmocom-master meta package. This makes it easier to install and test
the built packages locally.
Change-Id: Ie225ed9d0a3b822752d902eaf1e74f54fb5f5d63
We are about to remove the rpm spec files for almost all Osmocom git
repositories. The only two git repositories where we still need them,
because we have a customer using them on centos 7, are libosmocore and
osmo-pcap (SYS#6760). Add CI to ensure that these still build fine, and
that we don't remove these by mistake.
Related: OS#6446
Change-Id: I4d4a67c053ed29811c504158d1ef49430880ad4f
After recent refactoring of the gerrit-binpkgs job, rsync is now
requried on the jenkins nodes. It was installed on the ones where I
tested, but not on all of them.
Fixes: b2e12851 ("OBS: move gerrit-binpkgs logic to separate script")
Change-Id: Ic8ffd61fc2c89574085e9c3abbceb554f3c5da6a
Run this job only on jenkins nodes with a linux kernel of 6.1.x or
higher. The io_uring implementation consumes a lot more memory on e.g.
the 5.10.x kernel of host2, which causes osmo-bsc to run out of memory
in other places:
<0002> system_information.c:1641 bts 0: Error while generating SI4: Cannot allocate memory (-12)
<0002> bts_trx.c:505 Cannot generate SI4 for BTS 0: error <Cannot allocate memory>, most likely a problem with neighbor cell list generation
Related: OS#6405
Change-Id: Iddf2d47a641998860fd1ef615de976104667c5ab
build3 does not exist anymore, but it was still referenced here, leading
to the job waiting forever until build3 comes online.
Related: OS#6186
Change-Id: Idba77a3b9595c234ee21dfd1d0e267021a17bb03
As I'm preparing slides for a OsmoDevCon talk, I'm realizing that it is
quite cumbersome for users to build debian packages from Osmocom git
repositories (the same way gerrit does it, to reproduce errors locally).
Move the logic from the gerrit-binpkgs job to a separate script that can
be run from an Osmocom git repository, will figure out the repository
name from there and only needs the target distribution as argument.
Usage example:
$ git clone https://gitea.osmocom.org/osmocom/osmo-ci
$ cd libosmocore
$ ../osmo-ci/scripts/obs/gerrit_binpkgs.sh debian:12 # or debian:11, debian:10, almalinux:8
Change-Id: I100d8dfc0c58bdafe7efb0fa4108031ce10398a5
Run "dnf upgrade almalinux-release" inside centos8/almalinux8 to upgrade
the gpg keys first, in order to prevent gpg key errors while installing
packages. We are not running repo-install-test for centos8 in CI anymore
(SYS#6759), but I'm currently using this configuration to manually test
that fixing permissions during upgrade and running systemd services as
users works as expected on an rpm-based system.
Related: OS#4107
Related: https://almalinux.org/blog/2023-12-20-almalinux-8-key-update/
Change-Id: Ia06d24ce7ce48651f5a41489e78b5b55dc2d3921
io_uring in the kernel memlocks a big amount of space with older
kernels, such as the kernel on host2-deb11build-ansible. It seemed to be
enough to increase it to 1 GiB. However now we see it failing again
with:
failure during io_uring_queue_init(): Cannot allocate memory
Aborted (core dumped)
Set it to unlimited to ensure that a low limit is not the reason we see
it failing. If it still happens after this, we probably need to make
sure that we don't run too many SUTs with io_uring in parallel on
jenkins nodes with older kernels.
Related: OS#6405
Change-Id: I39aaa2ed7d0310a12d0c4493a79ff46b2e7e2864
After most recent patches from Pau were merged, the io_uring testsuites
run on all jenkins nodes with the ttcn3 label again!
host2-deb11build-ansible has an older host kernel and needs ulimit
memlock increased to 1 GB. I've tried out e.g. 500 MB and it isn't
enough.
Closes: OS#6405
Change-Id: I59b9a7c3928281a0557c17629029adcbc5ae7410
Treat json_array_foreach, json_object_foreach, json_object_foreach_safe
etc. the same as if, while, for, switch, and require exactly one space
after using it:
json_array_foreach (nftables, i, item) {
…
}
Related: osmo-hnbgw Id4e7fa017c31945388a010d8581715d71482116b
Change-Id: I0b58c6d70a961c7d0ba93a2f0d6a5a4afa321fa9
The ttcn3-ggsn-test-kernel-* jobs should not wipe their workspace, so we
can avoid shallow-cloning the kernel if the commit did not change.
The way the scripts in docker-playground.git are written, this also
caused a permission error.
Change-Id: I4ac1b2c3f5ba63c131dd1d6a4888f32a27264eba
Like the gerrit-verification jobs for libosmocore, run the master-builds
jobs on nodes with the io_uring label.
Related: OS#6405
Change-Id: Iea6791b3fbb5c445a539c2b4636a643d6c8d517b
Similar to osmocom-obs-nhofmeyr, add a jenkins job that automatically
picks up changes in Hoernchen/mssdr branches in the Osmocom projects,
and builds binary packages in home:ewild:mssdr.
Related: OS#6409
Change-Id: I9a8aaf00e3fae84a61ff3cab64750926f8a9e2e1
A change introducing osmo_io for RTP/RTCP of omo-mgw
is currently in review at https://gerrit.osmocom.org/c/osmo-mgw/+/36363
Let's make sure we have a related io_uring test job.
Change-Id: I672c72c855bebc1f895be51f3fa3cf0e368005ff
Related: OS#6387, SYS#5094