Commit Graph

575 Commits

Author SHA1 Message Date
Oliver Smith 504f23d82f jobs/osmocom-obs.yml: create Osmocom_OBS_next job
Change-Id: I50dca459d19dca5894b71169ae70a6c6778b2e52
2020-05-28 10:01:23 +00:00
Oliver Smith 799d936cc6 OBS: add osmocom-next-packages.sh
Fill the "next" feed with source packages generated from the "next"
branch of each Osmocom project, if it exists, with fallback to the
"master" branch. Implement as wrapper around osmocom-nightly-packages.sh,
so we don't duplicate code and don't need to add more logic to the jenkins
job.

Adjust all osmo_obs_prepare_conflict calls. Add a comment line on top of
each osmocom-*-packages.sh script stating the feed they can be used with.

Related: SYS#4887
Change-Id: I0542b6243bdd29d08381fcc82368dcbd30bf9dce
2020-05-28 10:01:23 +00:00
Oliver Smith 79b63d35a2 OBS: support more than one conflicting package
For the upcoming network:osmocom:next repository, it would be
inconsistent to have the debian package conflict mechanism only support
latest and nightly, even if the next repository is currently not built
for debian.

Change-Id: I2c07313fbbdffe5571e447059b08fe74c853cef0
2020-05-28 10:01:23 +00:00
Oliver Smith 1d0b144ad4 repo-install-test: update jenkins job
Rename osmocom-debian-install.yml to repo-install-test.yml to get debian
out of the name. Extend it with a new distro parameter and update the
description. Adjust the shell section to run the script from its new
location (in osmo-ci.git, not docker-playground.git). Turn it into a
matrix job, so we can have two parameters (distro, feed) for each job.

Related: OS#4563
Change-Id: I777098f19d75f7efbd68b837ccdcd83309429c39
2020-05-28 09:53:22 +00:00
Oliver Smith 8a65d0efd2 repo-install-test: don't mount /data
The "run-inside-docker.sh" script is running as root (in order to be
able to install packages). Do not mount an outside directory as /data
inside the image anymore, where the script would write temporary data.
This causes problems on jenkins, as the temporary files are written as
root and jenkins is then unable to wipe the workspace.

I had used this for debugging when I wrote the script initially, but
almost the same can be done now with INTERACTIVE=1 and cat on the
temporary files.

Related: OS#4563
Change-Id: If7e1d83580c2951e7e50181ba7e755b987675e4b
2020-05-28 09:53:22 +00:00
Oliver Smith 6b3980d05f repo-install-test: support centos
Related: OS#4563
Depends: I50743c304728444ede8e0d40b8abef9d17c44d8d (docker-playground)
Change-Id: I399360ee6389591180859b52f0ef08883447b90b
2020-05-28 09:53:22 +00:00
Oliver Smith ee7d5314fb repo-install-test: add KEEP_CACHE env var
Keep downloaded binary packages to make test cycles shorter during
development. While at it, also document all environment variables.

Change-Id: I4d6ebaf460e47f29e023acb0bd78ef52ca80c7cd
2020-05-28 09:53:22 +00:00
Oliver Smith 118915fba7 repo-install-test: use sh -ex
Make it consistent with run-inside-docker.sh by also using -e and -x.
This makes development easier.

Change-Id: I733164829bf076fb42df3fde725f3e330f8abecc
2020-05-28 09:53:22 +00:00
Oliver Smith 29d77413c0 repo-install-test: docker: add --tmpfs /run/lock
Make the script work on a debian10 host. I had developed it initially on
debian9, where this was not necessary, and the Jenkins servers are also
running debian9. Fixes:

Failed to mount tmpfs at /run/lock: Permission denied
[!!!!!!] Failed to mount API filesystems, freezing.
Freezing execution.

Change-Id: I5127356031a5dd080473aa650c2beae2a81a697f
2020-05-28 09:53:22 +00:00
Oliver Smith 2774c91438 repo-install-test: integrate
Make the script run from its new location.

Related: OS#4563
Change-Id: Ib6fbc4b9487a84e0c28cd8b0622ddc2d5b1dfe14
2020-05-28 09:53:22 +00:00
Oliver Smith 913a61b1f7 repo-install-test: move from docker-playground
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
2020-05-28 09:53:22 +00:00
Oliver Smith ec04994c10 Cosmetic: OBS: remove comments for requirements
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
2020-05-25 11:47:30 +02:00
Oliver Smith 7cb8e2d05c OBS: add debian10 specific patch for limesuite
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
2020-05-25 11:47:11 +02:00
Oliver Smith b6965f877c scripts/common-obs.sh: move osmo_obs_checkout_copy
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
2020-05-25 11:46:04 +02:00
Oliver Smith eb33aa7f63 OBS: add --noservice to osc ci command
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
2020-05-22 11:36:58 +02:00
Oliver Smith a36c355462 OBS: check required programs before start
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
2020-05-22 11:36:53 +02:00
Oliver Smith 4969d2b116 scripts/osmocom-obs-link.sh: remove sdcc
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
2020-05-20 11:27:39 +02:00
Oliver Smith b38c3e753b scripts/osmocom-obs-link.sh: new file
Related: OS#4550
Change-Id: Ib36682d645d9badad5515476675a947f2aec0baa
2020-05-19 17:02:33 +02:00
Oliver Smith 4f66f30307 OBS: add RPM spec files
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
2020-05-19 16:58:37 +02:00
Pau Espin 71cc851e35 osmo-gsm-tester: Point config parameter to file instead of its dirname
Since osmo-gsm-tester.git Change-Id Ieca65b71b543c44cfcec8e83efd0fe053c432e55,
the -c parameter holds the config file and not the directory where it is contained.

Change-Id: I9aca57c4dd3180367eb17ec92177b90a9c411a6a
2020-05-11 18:50:11 +02:00
Pau Espin 03b6049534 jobs: osmo-gsm-tester: Drop use of OSMO_GSM_TESTER_CONF for default conf dir
As of osmo-gsm-tester.git Change-Id
I7eb69f870d0dcb5906d45ae067d6bed1aabf5862, jenkins-run.sh script uses
the sysmocom value by default, so let's avoid setting it to simplify
stuff.

Change-Id: I8edfb93d53376930f60e0bd8d36a82ec6c11ed85
2020-05-07 19:16:15 +02:00
Harald Welte 512e6bc46d jenkins: Add master+gerrit job for osmo-el2tpd
Change-Id: I220741236c85ab7e25593b7dfadafaeb786ee503
2020-05-03 21:32:09 +02:00
Harald Welte bede70bee5 disable osmo-uecups latest build; needs new libosmocore release
Change-Id: Ib2f5fcd7e7a5b05a1fef9f3cbac99c6f203e2baa
2020-04-27 09:32:03 +02:00
Harald Welte b5254872aa osmocom-*-packages.sh: fix osmo-uecups
Change-Id: I359fe8f4fb94dc9b4b31e10f5cb9d0d4400a0e2a
2020-04-24 23:41:44 +02:00
Harald Welte fcd7f76107 add osmo-uecups to nightly + latest feeds
Change-Id: Ic7de1b4c6ce47093874fe373cac8a1f7e47ee179
2020-04-20 13:32:00 +02:00
Pau Espin e10e627f9d ansible: gsm-tester: Add dependency python3-websocket
osmo-gsm-tester needs it in rfemu_amarisoftctrl.py to connect to
Amarisoft CTRL interface (which is implemented through a websocket).

Change-Id: Iab03cfdcfb1c197ae002d95e0bb56d86e0aac97b
2020-04-17 20:04:20 +02:00
Harald Welte 933f866eff jenkins: add osmo-uecups to gerrit+master
Change-Id: I3ca141edcd61ae4126fa28f6560c99a1f568dec7
2020-04-17 15:18:40 +02:00
Harald Welte 1eee4475c0 jenkins: Add libnl-3 for osmo-uecups
Change-Id: I97114b60a647c6823eaeb031ea799c07af2b7aa0
2020-04-17 15:18:40 +02:00
Harald Welte 370ea3f1e7 ansible: The network:osmocom:nightly key has changed *again* :(
Change-Id: I1ddc792c23d7c7d6db9aea694ac615c1f5449782
2020-04-14 17:14:38 +00:00
Pau Espin f6dec4217e jobs: osmo-gsm-tester: Update path to sysmocom's specific setup
Since osmo-gsm-tester.git I364e0859c0851b9167907a4d948b659a0f6a19fb the
example/ directory has been renamed to sysmocom/

Change-Id: I4c7516d2eb9636d37391a81dc9d484c0c04d7191
2020-04-10 18:38:05 +02:00
Pau Espin f55a3c67be ansible: gsm-tester: Intall dbus policy file from git repo
Since osmo-gsm-tester.git I17ee94b175deb88faff71e7788c482093693f8a8, the
file is available in the repository, so let's simply install it from
there.

Change-Id: Icb4827c4126c997633e23e4d778ff9b1a1836322
2020-04-10 17:35:20 +02:00
Pau Espin 39a66cc7f9 ansible: ogt: Create target amarisoft dirs in slaves
Change-Id: Idd013ac01db545771217808e458e916900fe89a1
2020-04-06 13:22:08 +02:00
Harald Welte 10bc752474 update OBS Release.key; the old one expired today.
Change-Id: Ic0ef942f7c2cce9d786ecc2447b10b808bac2ba9
2020-03-30 18:22:59 +02:00
Pau Espin 94a0a917be job: Update master and gerrit osmo-pcu jobs to also build on ARM platform
Related: OS#4301
Change-Id: I8109cc9a71e6c14304ed6463f9b073ef3f4f3c2a
2020-03-16 10:30:26 +00:00
Pau Espin 3e0d3e36c0 ansible: Use osmo-gsm-tester docker image in jenkins job osmo-gsm-tester_virtual
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
2020-03-12 16:06:05 +01:00
Harald Welte 23150e1d15 ansible: ensure rsync is installed on all build slaves
Avoid the following error by the Osmocom-OBS_MinGW_weekly_publish job:

rsync -avz -e 'ssh -o '\''UserKnownHostsFile=/home/osmocom-build/jenkins/workspace/Osmocom-OBS_MinGW_weekly_publish/a1/default/a2/default/a3/default/label/obs/known_hosts'\'' -p 48' /home/osmocom-build/jenkins/workspace/Osmocom-OBS_MinGW_weekly_publish/a1/default/a2/default/a3/default/label/obs/out/ binaries@ftp.osmocom.org:web-files/windows
/tmp/jenkins1809827296988933592.sh: line 164: rsync: command not found

Change-Id: Id221729a8639f817a91888898e6a08a4dbce72c6
2020-03-11 10:00:11 +01:00
Pau Espin f9e0070e2d poky-sdk: Use first letter in caps (as in python bool)
Same as done in install-coverity/tasks/main.yml.

Change-Id: Ifbfe678e89bef3acd33e562888ad81093fa1230d
2020-03-03 16:26:52 +00:00
Pau Espin b3819d2c6a contrib/jenkins: Avoid docker setup if OSMO_CI_NO_DOCKER=1
Some jenkins slaves may not need docker (or even have it installed).

Change-Id: Ibfc4a81d3d621503b40204b7452ead56c726af97
2020-03-03 12:34:56 +01:00
Pau Espin 9184c87ad8 jobs: update-osmo-python-on-slaves: osmo-python not required in simtester node
Change-Id: Ia3728cf9296eab8db49274e4da64249e497726d1
2020-03-03 12:21:29 +01:00
Pau Espin 6464e7c4c3 jobs: jenkins simtest node is named simtester
simtest node doesn't exist, it's called simtester.

Fixes: 3935743127
Change-Id: Id703a85298b163e7e95bb89f6a69ab51e29effb4
2020-03-03 12:01:35 +01:00
Pau Espin 5855cf91cc update-osmo-ci-slaves: Fail jenkins jobs on script failure
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
2020-03-03 09:22:01 +00:00
Pau Espin 54f9316fcf ansible: gsm-tester: Install osmo-gsm-tester dependency python3-numpy
Change-Id: I1a162607288a50d2376c4ed7760a8e6fb07f6a89
2020-03-02 14:22:47 +01:00
Harald Welte 99a7abe42e osmocom-*-packages: Build neocon package
Change-Id: Ie0243bf066d6bc369737b8d659d09e3871cae79d
2020-02-26 14:45:30 +01:00
Harald Welte d52b4ee105 osmocom-latest-packages: Allow non-osmocom git URL in checkout()
Change-Id: I33bbc47598cb2c31cdc4209cd2fe3e6f6dd67e7a
2020-02-26 14:45:30 +01:00
Harald Welte 79df6f2b65 osmocom-nightly-packages: Allow non-osmocom git URL in checkout()
Change-Id: Ib768ff2822df5875820e4f12390004ed18614144
2020-02-26 14:45:30 +01:00
Harald Welte 4ddf61697a ansible: fix java for debian 10
Change-Id: I8b81edf420534726cd987f3f90efe79ca921f41a
2020-02-26 13:47:20 +00:00
Harald Welte 32f08347f7 ansible: Install open5gs dependencies on debian10
Change-Id: Ib58a9a91d34c4ebf10171bed8f0b26d9b34892b1
2020-02-26 13:47:20 +00:00
Harald Welte bee8f383e1 add build2-deb10build-ansible build slave
This is our first Debian 10 build slave

Change-Id: Iae80c5f73781d14ffbf124a476894d4631c83dc7
2020-02-26 13:47:20 +00:00
Harald Welte a17fa43f1a Make "ansible_distribution_version >= 9" work
The distribution version must not be quoted in this case (string) but
given as an integer.  Otherwise it will match only on 9, but not on 10.

Change-Id: I6ff3d16d2eac891e6663e8860eec2058478f4b79
2020-02-26 13:47:20 +00:00
Vadim Yanitskiy 3935743127 jobs: add 'simtest' to the list of to be updated slaves
Change-Id: I0cc6188aab10ecb8b862710d272c411e47a21f61
2020-02-26 18:05:50 +07:00