Commit Graph

835 Commits

Author SHA1 Message Date
Harald Welte bdb36dd055 osmocom-latest-packages: re-enable osmo-uecups
this should have been re-enabled since libosmocore 1.4.0 already

Change-Id: I5b8789cdfff2432c8d43972e19117f9f54eaaa7f
2021-02-23 20:21:11 +01:00
Harald Welte 17f23faf37 jobs: Fix names of commented-out SMLC test containers
This was a copy-+paste introduced in Ib1f374974444cdd5d829c4e57153137ecd9149f1

Change-Id: I8b315e2df34ccd9db78173ee6e83b4d8ec85e8bf
2021-02-22 14:13:13 +00:00
Harald Welte cf95a6f39c ttcn3-testsuites: Add osmo-cbc tests
Change-Id: I29eb72570d1f80c0f690878597c03afad5bb7b10
2021-02-22 14:12:49 +00:00
Oliver Smith bc2d794da8 OBS: nightly: use epoch from debian/changelog
If epoch is used in debian/changelog, prepend it to the version from
git-version-gen. Also set the epoch in the spec file.

For example, the version in debian/changelog may be 1:0.0.1. The epoch
is 1, therefore a 0.0.1.18.b5d18 version from git-version-gen would turn
into 1:0.0.1.18.b5d18.

Setting epoch=1 is needed for osmo-gbproxy, so apt on debian 10 with the
nightly Osmocom repository enabled does not try to install osmo-gbproxy
1.3.0 from the debian repositories instead of 0.0.1 from the Omsocom
repository.

Related: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version
Related: OS#4992
Change-Id: I3d63f040058340bdcf9075c03387798c5314be03
2021-02-16 11:37:24 +01:00
Oliver Smith e99cb64e2e jobs/registry-triggers: add for osmo-ttcn3-hacks
Trigger registry-rebuild-upload-titan on changes in
osmo-ttcn3-hacks.git. Write registry-triggers.yml with a job template,
so we could add more triggers from git repos -> registry easily if
needed in the future.

Related: OS#5017
Change-Id: Ib6a27be6351ce821c7023a1f75a82b1ade2ffa49
2021-02-11 18:03:38 +00:00
Oliver Smith 7433811c62 jobs/registry-rebuild-upload-titan: new job
Trigger for this job will be added in follow-up patch.

Related: OS#5017
Change-Id: I2c4b264abf760894edb0788054fd987f9346b6ec
2021-02-11 18:03:38 +00:00
Oliver Smith 9bfdbd13e8 jobs/registry-update-base-images: fix typos
Change-Id: Ifc6c85e638818113182802841c3e0e4a7e6cfda8
2021-02-11 15:50:32 +00:00
Oliver Smith 2b22fa2f5a jobs/master-builds: libosmocore: add triggers
Add missing triggers for osmo-gbproxy, osmo-trx.

Related: OS#4992
Change-Id: I1bc590cc9560b1780cccd99f7ca86700bd9a6ad9
2021-02-11 12:28:24 +01:00
Oliver Smith ae46ae9fc2 repo-install-test: add label for relevant nodes
Add the slave axis again, so the jobs aren't stuck forever. I had
assumed that without the axis, it would run on any node, but that's not
how it works. Add a label for this job, with several nodes attached,
like we do it for TTCN-3, master-builds, gerrit-verifications etc.

Related: https://jenkins.osmocom.org/jenkins/label/repo-install-test/
Related: OS#4567
Fixes: fcf669 ("repo-install-test: run on all build slaves again")
Change-Id: I276ab47f76a0f4db542ca99825ebb019236b4d27
2021-02-10 13:02:59 +01:00
Oliver Smith fcf6699f56 repo-install-test: run on all build slaves again
It was not possible to reproduce the weird rpm errors on
admin2-deb9build, which had lead to limiting the build slaves to
build2-deb9build-ansible. Enable building on all again.

Closes: OS#4567
Change-Id: I82ef1f0c581de8ee826adedd9ecde6b4adaa36ba
2021-02-08 11:42:28 +01:00
Oliver Smith 70ce36c3ff OBS: nightly: add osmo-gbproxy
Depends: osmo-sgsn I37f7cebaf2a06bd93627a452f5df44edcfc0f87a
Related: OS#4992
Change-Id: I08c513ba812bcb302b5dcab52fc187b27b1b32b7
2021-02-03 10:44:49 +00:00
Harald Welte 2f611e206c osmocom-latest-packages: Build osmo-cbc
osmo-cbc has full support for building dpkg + rpm from the latest
tag (0.2), hence we can enable building it also in 'latest'

Change-Id: Ia5bfd126ad168da7ab629b1f18ecfd60d4a49a51
2021-02-03 08:38:30 +00:00
Harald Welte 2933da3810 master + gerrit jenkins jobs: Add osmo-gbproxy
osmo-gbproxy is moving to its own reporitory

Change-Id: Id29c83bdcd9b626bb7920738c8b1f945ef7f3671
2021-02-03 08:38:06 +00:00
Oliver Smith 708aed1ebd OBS: nightly: don't download bumpversion
Stop downloading bumpversion related archives with each run. They were
not uploaded to OBS after the download (no 'osc add' runs aftewards, and
last modified of network:osmocom:nightly:bumpversion is 3 years ago).

bumpversion is needed to run osmo-release.sh, and is available in debian
since 9 (stretch).

Related: https://build.opensuse.org/package/show/network:osmocom:nightly/bumpversion
Change-Id: Iaf2527043e9acdb6acff3e481d4516ac4b75b7e7
2021-02-02 14:12:04 +01:00
Oliver Smith 6f5f4d6dd3 OBS nightly: don't try to use UNKNOWN as version
If the repository doesn't have a git tag yet, git-version-gen will set
the version to UNKNOWN. The debian package build tools will choke on
that, so fall back to using the version from debian/changelog.

Related: OS#4992 (osmo-gbproxy.git doesn't have a tag just yet)
Change-Id: I43c32f73bdfd715db5afdeec3bd8026d3c1fd8eb
2021-01-29 16:11:06 +01:00
Oliver Smith 00b7181760 repo-install-test: add 'debian10'
Related: OS#4969
Depends: docker-playground I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d
Change-Id: If0fc12464b571dc42b33f2a077c77ea6e5120b8d
2021-01-25 10:31:11 +01:00
Oliver Smith 137d39c764 repo-install-test: rename 'debian' to 'debian9'
Related: OS#4969
Depends: docker-playground I2ea18997019ebaa013c258996f5131386bcd6426
Change-Id: Iaa2202cca4072b4dc0309e011aba6cb33ed5b8aa
2021-01-25 10:28:16 +01:00
Oliver Smith 6786c2615c Cosmetic: repo-install-test: fix DISTRO comment
A valid example is "centos8", with the version, not "centos". Remove the
debian example, as we'll require a version with that later on as well.

Related: OS#4969
Change-Id: Ie8c2c86bc77606b1d2d4339751521139de22db04
2021-01-25 10:27:26 +01:00
Oliver Smith 9318ea8720 repo-install-test: resolve distro obs dir in func
Instead of hardcoding CentOS_8 in the centos code path, and Debian_9.0
in the debian code path, resolve the proper OBS directory based on
$DISTRO.

Related: OS#4969
Change-Id: Ie537e8befeebd7958b2a1fe8f6fd54587cfcb1b6
2021-01-25 10:27:26 +01:00
Oliver Smith 4813fb7fd9 repo-install-test: verify DISTRO argument
Keep list of supported distros in one place in repo-install-test.sh.

Related: OS#4969
Change-Id: I1aa2564ff861d81a866302e44a1f99ff876c7b31
2021-01-25 10:27:20 +01:00
Oliver Smith 89c733986e repo-install-test: no distro version in function
Instead of calling various foo_debian and foo_centos8 versions with
foo_$DISTRO, create new foo functions that call the right
distro-specific function based on debian* or centos* being in DISTRO.
Rename all foo_centos8 functions to foo_centos.

This is in preparation to run this script with debian10 too, not just
debian9. This can also be used to test a different centos version in the
future.

Related: OS#4969
Change-Id: Ibb9f93af16af7ebe947f7efcd4e709f3e62d12c0
2021-01-22 12:06:09 +01:00
Oliver Smith eea4a2f637 repo-install-test: print successful test msg
Change-Id: Idfb75b0461a352ae1703f3c8452cd3afc3320049
2021-01-22 12:06:06 +01:00
Oliver Smith 867b6de117 jobs/repo-install-test: run a few hours later
Give OBS more time to build the repository, before verifying that we can
install all packages from the repository. Apparently, OBS publishes the
repository in WIP state, before all packages for a distribution have
been built.

This leads to problems in the "nightly" and "next" repositories. In
contrary to "latest", we do not bump soname versions when doing ABI
changes, so we require the user to have all installed Osmocom packages
built from the same timestamp. With recent changes in the OBS scripts,
we enforce this by having all packages built from the same timestamp
depend on the exact version of a dummy package with that timestamp as
version.

The repo-install-test installs all packages from the binary repository,
and so it fails, as it should, if the repository is in an inconsistent
state with some packages built today and some packages built yesterday.

Related: OS#4733
Change-Id: I8df9b449d6213b5dca6fd9bf5c06b5c96d468f66
2021-01-21 10:44:59 +01:00
Oliver Smith 48c966a305 Cosmetic: jobs/obs: update repo-install-test name
Change-Id: Ic5712173ec79d286fb3591364636a38f6af74503
2021-01-21 10:30:05 +01:00
Oliver Smith 2c8767a5c7 repo-install-test: add test_conflict
Install one Osmocom package from one package feed and attempt to install
a second package from a different feed. Verify that the package manager
exits with error and mentions the conflict in its output.

Related: OS#4733
Change-Id: Icf2a3a1d1de2ff42b1dc9aadf2075e5e1ff40291
2021-01-20 14:28:25 +01:00
Oliver Smith 14c04c4296 repo-install-test: add TESTS variable
Allow to enable only certain tests during development.

Related: OS#4733
Change-Id: I8d817f47d790e4cdc25c5182a0e91b66a00fbf52
2021-01-20 14:26:52 +01:00
Oliver Smith 9733e2e4d5 repo-install-test: cfg_osmocom_repo: add PROJ arg
Prepare for future conflicts test, which will configure repositories
with a different PROJ.

Related: OS#4733
Change-Id: Ib9946b5a02f8692efc8515907ba84048026474f9
2021-01-20 14:24:41 +01:00
Oliver Smith 4d7c21a8ac repo-install-test: download/add deb release key
Download and add the release key for the debian repository from OBS.
This is useful for manually testing the existing tests with a different
PROJ for debugging, and it will be used by a future conflict test to
install a second repository (e.g. nightly and latest at the same time).

Note that this is not needed for rpm, because the dnf package manager
automatically downloads the key if it is missing.

Related: OS#4733
Change-Id: I91e7a208d8f5cb50f8baa2fde0eb979aae91da8f
2021-01-20 14:22:48 +01:00
Oliver Smith 07ea04f8f7 repo-install-test: don't use $FEED in centos8 repo
Use $PROJ instead of $FEED in the repository name, so we can add $PROJ
as parameter to the repo configuration functions later without worrying
about having a matching $FEED.

Related: OS#4733
Change-Id: Ic316add6b2d9b6f50335cad762628bb16da61d82
2021-01-20 14:19:16 +01:00
Oliver Smith fcfec399fb repo-install-test: put $PROJ in sources.list name
Don't call the file osmocom-latest regardless of the feed name. This becomes
important in a future conflict test where we will have two repositories
from two feeds configured.

Related: OS#4733
Change-Id: I8926443a9ff70f285d9467d39658e64456972b07
2021-01-20 14:19:12 +01:00
Oliver Smith 12e6889125 repo-install-test: make HTTP, OBS vars local
Move the two debian-specific variables to the debian-related functions
where they are used. Both are only used once, and having them global is
misleading since the test isn't just for debian anymore, but also for
centos8.

Make the variables lowercase to indicate that they aren't used globally.

Related: OS#4733
Change-Id: I1dfddbd9311d741c03ceedb12aee9aeae6abdab8
2021-01-20 14:19:07 +01:00
Oliver Smith 5ddc64b292 repo-install-test: add PROJ variable
Make debugging easier by having a PROJ variable that can be overridden
by an environment variable of the same name. Pass it to docker and use
it to generate all related URLs etc.

Add functions in run-inside-docker.sh to convert the PROJ variable into
the two other formates needed (with slashes, with underscore), so a
future patch can use these functions with a different PROJ variable too.

Related: OS#4733
Change-Id: I0ac05a79ad65b5664b5ba37227b65e3b1422a4bf
2021-01-20 14:19:02 +01:00
Oliver Smith 98edd8f01d repo-install-test: tweak FEED syntax
Use the shorter form, before adding another variable with default value.

Related: OS#4733
Change-Id: Icb36da91a6dc52529c2087b0961c1b698076eea1
2021-01-20 14:18:52 +01:00
Oliver Smith b72ee5ff74 OBS: use _sourcedir to write rpmlintrc
Change-Id: I16e1b3fe297ab516ceff4742ff39633480f3720e
2021-01-18 17:14:10 +01:00
Oliver Smith 577e84350d OBS: make rpmlint shlib-fixed-dependency non-fatal
Create a rpmlint config, which makes the shlib-fixed-dependency check
non-fatal, as it caused builds for openSUSE_Leap_15.2 to fail. The check
is supposed to warn about libraries depending on specific versions of
other packages. However, for the nightly and next packages, this is
exactly what we want to do to ensure that users will always upgrade all
Osmocom packages to the builds from a specific day, and not mix them.

Messages from the check:
[  307s] libosmocodec0.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006
...
[  307s] libosmovty4.armv7hl: E: shlib-fixed-dependency (Badness: 440) osmocom-nightly = 1.0.0.202101181006
[  307s] Your shared library package requires a fixed version of another package. The
[  307s] intention of the Shared Library Policy is to allow parallel installation of
[  307s] multiple versions of the same shared library, hard dependencies likely make
[  307s] that impossible. Please remove this dependency and instead move it to the
[  307s] runtime uses of your library.
[  307s]
[  307s] (none): E: badness 3960 exceeds threshold 1000, aborting.

Related: OS#4733
Related: https://en.opensuse.org/openSUSE:Packaging_checks#Disarming_Fatal_Errors
Change-Id: I560b4adf80b5785d396a17afefa590559ad5ca5a
2021-01-18 15:53:44 +00:00
Oliver Smith 90544fe934 Revert "osmo-build-dep.sh: don't build osmo-gsm-manuals"
Now that we have the proper fix of making a clone of
osmo-gsm-manuals.git available before builds start, and not using
'osmo-build-dep.sh osmo-gsm-manuals' in the contrib/jenkins.sh files
anymore, we can remove the temporary solution. This reverts commit
4cbc445616.

Related: OS#4912
Depends: https://gerrit.osmocom.org/q/topic:jenkins-no-manuals-dep
Change-Id: I88d57ee04775dc75e6ca3152d7edfa7f47608c8a
2021-01-18 13:59:14 +00:00
Oliver Smith 0550cf9b92 OBS: nightly: depend on dummy pkg of current date
Make it impossible to mix nightly/next builds of different dates.

Related: OS#4733
Change-Id: Ida8db8e6c91834c9d9e43694d9b4daea55a2f8f8
2021-01-15 16:51:25 +01:00
Oliver Smith 245b68316a OBS: add %H%M to DT
Make sure that each time osmocom-nightly-packages.sh and
osmocom-next-packages.sh runs, we get a different date appended to the
versions, even if it runs twice on the same day (e.g. because the
jenkins job was triggered manually).

This is in preparation to let all packages depend on a specific version
(with that date) of the conflicting dummy package.

DT in osmocom-latest-packages.sh is adjusted for consistency (though it
is not appended to the package versions, only used in the commit message
when pushing the latest packages).

Related: OS#4733
Change-Id: I7f08c694a549f1b3dd938a68e05082f2c31fdb92
2021-01-15 16:51:24 +01:00
Oliver Smith e738afafa3 OBS: osmo_obs_add_rpm_spec: depend on conflict pkg
Related: OS#4733
Change-Id: I69bebdadaf89c2a6e5dd9a27161703a567882359
2021-01-15 16:51:22 +01:00
Oliver Smith d92c2d362d OBS: osmo_obs_add_rpm_spec: refactor
Rename $spec to $spec_in and add $spec to hold the destination path, to
avoid constructing it multiple times below.

Related: OS#4733
Change-Id: I4f3d4f8a8bc83ff22983e49f6a496dc8318b53cd
2021-01-15 16:51:18 +01:00
Oliver Smith d0ab94579b OBS: add_depend_deb: no self-dependencies
Check if we are trying to make a package depend on itself, and skip in
that case. This happens for the osmocom-nightly etc. metapackages, as
they go through the same code path as regular packages. While at it, use
proper variable names in the function.

Add the new variable as second argument and not as third, because a
fourth argument will be added with the dependency version, and because
this order will be consistent with osmo_obs_add_rpm_spec() when it gets
extended in a future commit.

Fix the following warning:
W: osmocom-nightly source: package-depends-on-itself osmocom-nightly depends

Related: OS#4733
Change-Id: I439079c00259d73a18cb8617a3e76d05df5a7a35
2021-01-15 16:51:13 +01:00
Oliver Smith b7f05a92e5 OBS: rename osmo_obs_add_debian_dependency
Change name to osmo_obs_add_depend_deb. I'll add a _rpm function in a
future patch, and so we get consistent names.

Related: OS#4733
Change-Id: Icf444b86df993184c9fe4db8d3e67ab4bb06bd47
2021-01-15 16:51:12 +01:00
Oliver Smith 12416b8f5c OBS: conflict: generate conflicting rpm too
Related: OS#4733
Change-Id: Ifac815574758668172b0a7bb089585ce5a17b9e3
2021-01-15 16:51:11 +01:00
Oliver Smith 38fccbdd18 OBS: conflict: move common code from _deb to main
Move logic to create the package directory, change into it, and to put
the directory into a git repository and tag it with the package version,
into the common function. Again, in preparation to add a _rpm function.

Related: OS#4733
Change-Id: I3066147ef5469cce9d269b119d9ffa3e53f00403
2021-01-15 16:51:09 +01:00
Oliver Smith 912a2d36df OBS: conflict: move pkgver to global variable
Prepare to move the 'put in git repository' code from _deb to the main
function by having the pkgver available outside of the _deb function.

Change the version to 1.0.0 while at it, as it looks better than 0.0.0.

Related: OS#4733
Change-Id: Ic56ff12b5f2fe596d73b341e1e7750a9e202ed6b
2021-01-15 16:51:07 +01:00
Oliver Smith 02fb9ca1e7 OBS: conflict: move _deb to separate function
Prepare to add the _rpm function by moving the debian code to its own
function and tweaking the comment above the function.

Related: OS#4733
Change-Id: Ic8d55c432c6035e7ac855cf6869d2c86ace468df
2021-01-15 16:51:02 +01:00
Oliver Smith 0771116a49 OBS: move obs_prepare_conflict to own file
Prepare to add another function that creates similar dummy packages for
rpm (current version only works for deb).

Related: OS#4733
Change-Id: I29a5f54fe3a09610cffa0eacb5f0ad99154612f7
2021-01-15 16:51:00 +01:00
Oliver Smith c32a0f60e0 contrib/jenkins: add missing cd ~/osmo-ci
Fixes: 829f8b94 ("ansible: tasks/osmo-ci: clone osmo-gsm-manuals")
Change-Id: I3ca101f73cecfc5cda447ffce53a104ecc39e1fd
2021-01-13 16:25:20 +01:00
Oliver Smith 9dadec3209 jobs: remove duplicate docker_run
docker_run was duplicated for osmo-e1-hardware and no2bootloader, so the
'-e PATH' line could be removed from the global docker_run. It was
overriding the PATH, which then did not contain the path to the compiler
toolchain anymore.

This workaround is not needed anymore since de5aa17d6 ('jobs: don't
overwrite PATH in "docker run"').

Related: OS#4911
Change-Id: I97a4add17d9fa1bd28ab0ceb054b9a8d948b6f86
2021-01-13 12:40:18 +01:00
Oliver Smith 212e43fa1c jobs: update OSMO_GSM_MANUALS_DIR
Use new location inside / outside docker, where the repository was
cloned already. So it does not need to be cloned during the job.

Roll out: make sure that the docker images are already built! (or let me
merge it)

Related: OS#4912
Depends: docker-playground Id402e0ea372b5ca8a6c8f6f5beb190544c888207
Change-Id: Ibe91a613162687589e006cba99193606fb8a3eb9
2021-01-13 12:40:18 +01:00