Run this job inside docker, so all depends are available (fixes that
it currently fails because liburing isn't available for libosmocore).
Change-Id: I5a8243b3096dba8f94f715413c84683c7495777c
Run the osmocom-api job inside docker, so all depends are available
(fixes that it currently fails because liburing isn't available for
libosmocore).
Use the contrib/known_hosts file, instead of writing an own copy during
the job.
Change-Id: I6e831c71c4c88772c3e4232fcb1a9e2c1c73d997
Don't try to build the debian package for debian 10. It fails as rebar3
is not in debian 10. Test the build for debian 11 and 12, which is what
we build the package for on obs.osmocom.org.
Change-Id: Id01b466f1bacc9cbb8e835f69da765f5fdccfdc2
Rewrite the osmocom-release-manuals script (previous version is in
docker-playground Ic35a28a386170b85d32aab8f2bd33e48e6d45392):
* Instead of using a separate docker container for this, that also lists
all dependencies for all packages (as needed to pass ./configure), use
debian-bookworm-build and install missing packages at time of
generating the tarballs with "apt-get build-dep". Missing dependencies
are typically other Osmocom libraries.
* This allows removing the debian 11 based release-tarball-build-dist
container. As the script doesn't depend on a separate docker container
anymore, move it to osmo-ci.git.
* Make it similar to scripts/manuals/publish-manuals-for-tags.sh, so it
is easier to maintain both.
Related: OS#6057
Change-Id: I9f8b671b9780da500637a64fc4dbc72b450f9d11
Fix the failing osmo-gsm-tester_virtual job by building the docker image
it depends on first, debian-buster-jenkins.
We are migrating most of the CI infrastructure away from old debian
versions to debian 12, but this is not possible here as explained in
OS#6126.
Related: OS#6126
Change-Id: I5f7468a402d82e3b6ee03b4f792ae7e3aae3942b
openbsc, osmo-e1-recorder, osmo-smlc have been adjusted to not require
python2 anymore. Let them use debian 12 for building.
Closes: OS#5950
Change-Id: I1d9204b5b59866fa79839221bb47ec4f7206a982
Build packages in CI for the oldest and newest debian release, for which
we provide binary packages in the Osmocom OBS repositories.
See "jobs: master/gerrit: use debian bookworm (12)" for reasoning:
I079e55a1325083714c8d39f922b2563e843fc0bc
Related: OS#6057
Change-Id: I959b466865bd327cc72cde4a1763ac13c2c2d797
Don't build libusrp for centos8/almalinux. libusrp does have a .spec.in
file, but it needs SDCC for the build and SDCC is not available there.
In theory we could build the rpm in CI for opensuse tumbleweed, but it
requires adding support for building for opensuse in
scripts/obs/data/build_binpkg.Dockerfile and
scripts/obs/data/build_rpm.sh first, and since it works quite
differently than centos8 and libusrp changes rarely (last code change in
2021) I've decided to not do that now.
Fixes: OS#5898
Change-Id: If61765fe628321cae004307f4845d8927a1c7019
Make it possible to set a list of distributions to check in
gerrit-verifications.yml instead of only having one boolean for testing
two hardcoded rpm and deb distributions.
Change-Id: I59487e3dc2f55057de1b6a322f088fff0d18654c
* Deduplicate the code to run a job by moving it to a function.
* Print the status of jobs right after they finished, instead of waiting
until all jobs are done
* Make the status print messages more readable
Change-Id: I641a5b483721ce2bbf21bd61d8f4e83faf94ac24
The asn1c code does not follow our coding guidelines, and in the
interest of keeping it closer to upstream it does not make sense to
reformat it.
Change-Id: Iae97d8997b576e43c9a73dfcc61a9260f875310f
Add parameters to set the osmo-ci and docker-playground branch. I'm
using this to test the debian 12 based containers before merging the
changes to master.
Related: OS#6057
Change-Id: I62265300048031cbb65e997b921373894500233f
Upgrade from debian 11 for master and debian 10 for gerrit
verifications to using debian 12 for both.
Previously we intentionally built against the older debian 10 version
to ensure that our programs still build there. However it is easier to
maintain the docker containers if we just use the most recent debian
version for both and it makes the build environment more consistent - if
a patch passes in gerrit verifications, we expect it to pass in master
builds as well. And the other way around, I can just run CI of all
master jobs when developing a change and assume that if they pass,
gerrit verifications will run as well.
As long as we provide binary packages in OBS for debian 11, 10, ... we
will still notice if a build breaks on an older debian release. I think
this is good enough given that it will probably not happen that often,
but if we decide that we really want to ensure it still builds on older
distros at gerrit-verification time then the more suitable place to add
this would be in the deb-build verification test. It is more
maintainable there, because the dependencies just get installed from the
debian/control file, no need to add all of them to a docker container
beforehand.
The new container is debian-bookworm-build, see the docker-playground
commit for reasoning why it is not debian-bookworm-jenkins.
Related: OS#6057
Depends: docker-playground I49aaf62b5b97775f923453611df3b91354a640a0
Change-Id: I079e55a1325083714c8d39f922b2563e843fc0bc
* we never really wanted to build against fixed tags but branches, i.e.
"the latest tag within a given stable series", so switch from a fixed
tag like "v5.10" in torvalds/linux.git to "linux-5.10.y" in stable/linux.git
* we also want to build against 6.1.y, as that is what upcoming Debian
bookworm will ship
Change-Id: I60aa61cb5020c9ce50126b048a0fa546a535236f
* we never really wanted to build against fixed tags but branches, i.e.
"the latest tag within a given stable series", so switch from a fixed
tag like "v5.10" in torvalds/linux.git to "linux-5.10.y" in stable/linux.git
* we also want to build against 6.1.y, as that is what upcoming Debian
bookworm will ship
Change-Id: Ibc0527a6f7d11c4f99c19e73c948b9baacd4e5a2
Upload workspace.tar.xz if it was created by osmo-bsc or osmo-msc, after
the testsuite failed. This should help with figuring out why sometimes
we get a coredump.
Related: OS#5665
Change-Id: I40b738558b83efc9256e5d5c48ffce42ddce9a8a
Do not run struct_endianness.py from libosmocore.git on osmo-ci.git, as
it doesn't contain C code.
Change-Id: Ib9a2ed2ce02a171f0bdca56728f8cdabf8f4cd1f
Build the manuals with --enable-iu for osmo-msc and osmo-sgsn, so we
don't miss IU-related VTY commands in the manuals.
As of writing, osmo-sgsn includes cs7-instance-iu only if building with
--enable-iu. osmo-msc includes it regardless of the build flag (and
returns an error if trying to use the command if built without IU
support). Build the manuals with --enable-iu for both for consistency,
and just in case we decide to change this behavior / add more commands.
Related: OS#6013
Change-Id: Ib9c47796b582add90ef72376b4c0368a29d89b15
Build osmo-hnbgw with and without PFCP. Build the manuals with PFCP, so
it includes the additional VTY commands.
Related: OS#6013
Change-Id: I4a4e25e0c179c0d408c3728a28eb75bbfa086f48
Having the OBS URL at the end of the jenkins job was useful when we were
uploading to obs.osmocom.org and build.opensuse.org at the same time
during the transitional phase. Remove the URL from the job name as this
isn't the case anymore, and so the jobs look consistent with new
Osmocom_OBS jobs.
Change-Id: I460f9e6a508421773e300eee6c5c5654e5760cdb
Increase the logs to keep for gerrit related builds, as they may exceed
the previous limit of 120 within a day. All these jobs don't save build
artifacts, so they should not cause a noticable size increase.
This is a much more careful version of 719ff976 ("jobs: tweak
build-discarder values"), which had been reverted in a052c13c. The
big problem with the previous patch was that it increased the number of
jobs to keep even for jobs that had build artifacts, and so the
required storage exploded.
Related: OS#5980
Change-Id: I1a4604d7a5093349aee0122e74914b06045c78b8
Remove the "artifact-days-to-keep: -1" and "artifact-num-to-keep: -1"
lines, as they don't have an effect. -1 is the default value, which
means "infinite" and causes the value from "days-to-keep" /
"num-to-keep" to get used instead.
This patch re-applies part of 719ff976 ("jobs: tweak build-discarder
values"), which had been reverted in a052c13c.
Related: https://jenkins-job-builder.readthedocs.io/en/latest/properties.html#properties.build-discarder
Related: OS#5980
Change-Id: Ic073643634e1814147d765dd7e8f3f02e81effc3
For some reason, this job still had deb9 nodes listed. Remove them, and
add the deb11 nodes.
Related: OS#5793
Change-Id: I5656edb57165cdab69a5ddace32e7a8c9b3651d9
This reverts commit 719ff97608.
The disk consumption of jenkins has grown by almost 500GB
since we merged this patch. Clearly this is not expected, and we'd
have ran out of disk space in a few weeks.
I personally think the current allocation of 1.5TB of disk space to
jenkins should be more than sufficient; we just need to manage it
better.
Closes: OS#5980
Change-Id: I6b744a8b84a3e1255a8d51f73d1721ccfd028ac1
Add a jenkins job that automatically builds manuals for release tags, if
they don't exist on the server already.
Closes: OS#5902
Related: https://downloads.osmocom.org/docs/
Change-Id: I0ecb238660553c3c857e1b310873eca8a8d09dab
I've verified that all master-builds jobs still work with this change.
Related: OS#5949
Depends: docker-playground I51925d0ab9e5a779379efab59c381ef12fb60929
Change-Id: I7d5bc7bb4c1457d4e05fd6e0d27668382c39973a
Build the manuals with the regular docker image, instead of the
fpga-build one.
Fix for:
build/shrink-pdfs.sh: 8: build/shrink-pdfs.sh: ps2pdf: not found
Related: SYS#6380
Change-Id: I6e9f832dc449af0ca7def29ef5a9161285b01736
Add a nightly jenkins job that does the following:
* Clone Wireshark from upstream
* Merge several Osmocom branches on top
* Build a source package
* Submit it to the osmocom:wireshark OBS project
Related: OS#2537
Change-Id: Ifb49c5cb22a4de0da30a920e5450a27172b11d73
Remove num-to-keep from most jobs, as this leads to keeping the build
logs for a much shorter timeline than desired. For example the
gerrit-binpkgs-deb job that runs for most projects when pushing patches
to jenkins reaches the 120 limit in less than 24h - and so when clicking
the link on a failed build from yesterday it is already deleted.
Instead just keep the logs for the last 30 days, no matter how many were
submitted on one day. Storing logs doesn't take up much space.
Remove the artifact-days-to-keep and artifact-num-to-keep lines, as they
don't have an effect. For jobs that do have artifacts, the actual value
is min(days-to-keep,artifact-days-to-keep) and same with num-to-keep.
While at it, increase the ttcn3-testsuites build-discarder to 120 days
as this means more data will show up in the test result analyzer at
which we look frequently.
Change-Id: Iec5c22c7fcf6c1fd2db71611045f15dc6580ed86
Let the check only run on the main repository, not on any submodules.
This fixes that it would currently fail in osmo-trx: the osmocom-bb
submodule has a copy of libosmocore where the endianness check is known
to be failing (see https://gerrit.osmocom.org/c/osmocom-bb/+/31403).
Change-Id: I795a64a66b4a2e316a99e6b523cc33a9ed364272
Add a new job that runs struct_endianness.py from libosmocore.git and
complains if there is a diff. The next patch adds it to the pipeline.
Related: OS#5884
Change-Id: Ie12ef58905e5cdf1fb6816b59efb65c0e56b5e8d
Don't attempt to create the CCACHE_DIR and chown it to osmocom-build for
the simtester jenkins node, and more generally all that were not
created with the ansible provisioning scripts. In case of simtester,
there is no osmocom-build user and we don't have the space there to use
ccache.
Fix for:
chown: invalid user: ‘osmocom-build:osmocom-build’
Related: OS#5848
Change-Id: I339d9ba4ad0c959d7325820eb53bfa1f0e04c164
Put arguments for ccache into a new docker_run_ccache variable, and use
it with all projects where it makes sense to use ccache.
Other projects use docker_run without the ccache parameters again:
* osmo_ss7, osmo_dia2gsup, pysim:
Erlang/Python projects
* osmo-e1-hardware, ice40-usbtrace, no2bootloader, osmo-opencm3-projects:
Don't use the default docker image
* osmo-gsm-tester:
Only builds manuals (jenkins-build-manuals.sh)
Jenkins job builder's variable substitution doesn't replace {docker_run}
inside docker_run_ccache when used in cmd, so just duplicate the lines.
Related: OS#5848
Change-Id: Ib6d7f309b972979d3a3bc87f8fcf71f9e930c0da
Don't attempt to build deb packages for openbsc in gerrit-verifications.
Fix for:
ERROR: unknown package: openbsc
See packages_osmocom and packages_other in obs/lib/config.py
Change-Id: I3cd810366a6d711c1fdbf3d5ff03d507441307bd