Commit Graph

17 Commits

Author SHA1 Message Date
Oliver Smith 033c6ab1be */jenkins.sh: set -e after setting clean up trap
Abort the script and trigger the clean up script, whenever any of the
commands below to prepare the testsuite are failing. This saves time
with figuring out why suddenly all or most tests are failing, and avoids
running the entire testsuite on jenkins if it's obviously not going to
work.

Related: OS#3208
Change-Id: Ie68da2affda8c96b3a515a857a921a05f1bf8ef7
2021-02-26 09:32:34 +01:00
Oliver Smith 12b961942a jenkins-common.sh: add common clean up trap
Add set_clean_up_trap() in jenkins-common.sh and run it at the beginning
of the jenkins.sh files. Move the common clean up code from the end of
every jenkins.sh file into clean_up_common(), which gets called by the
trap. Add a custom clean_up() function to those jenkins.sh files that
need additional clean up.

Replace explicit container stop commands (for containers attached to the
docker network) with one call to network_clean() in clean_up_common(). It
kills all containers attached to the docker network.

The motivation for this change is the upcoming optional build of initrd
and kernel during ttcn3-ggsn-test/jenkins.sh. After building these, a
short smoke test will be performed to make sure we can boot the kernel
and initrd, before continuing to run the entire testsuite against it. If
building or the smoke test fails, we must do a proper clean up of the
network and fix permissions.

Related: OS#3208
Change-Id: I807c6221d22fec31db23e2516e477a3eb43347fb
2021-02-26 09:32:06 +01:00
Pau Espin 1f45fb08ff jenkins-common.sh: Add function to print docker network related parameters
Change-Id: Ie00561de7a4494065156a124565e2190151e6019
2020-08-27 12:49:43 +02:00
Harald Welte 306a51dd30 Enable IPv6 in docker networking
We previously only allocated IPv4 sub-nets to the network segments
created with 'docker network'.  Let's fix that by assigning both
IPv4 and IPv6 address ranges to each docker network.

Related: OS#4700
Change-Id: I8802208fddcce1ffa57e5626575d23d02b320d99
2020-08-13 15:01:58 +00:00
Neels Hofmeyr 04c20edefd collect core dumps: '--ulimit core=-1' and WORKDIR=/data everywhere
Change-Id: Ief73b53ed9da6f5af82975bc36d851277d5d3185
2020-06-21 20:58:22 +00:00
Pau Espin db9514e2fe osmo-gsm-tester: Update resources.conf syntax changes
Change-Id: Iaa3e43d6878933b1f01026d58b01b1009fe4cd78
2020-06-11 17:17:21 +02:00
Pau Espin eeaa003c5a osmo-gsm-tester: Fix typo in path in jenkins.sh
Change-Id: Icdbd94a9e3de81ae60ce18da86ad57ebf70fb04f
2020-05-12 16:42:51 +02:00
Pau Espin 16901f8053 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: I5aa0507d0e82616ee3cca74573fea6bdb7459b53
2020-05-12 12:53:36 +00:00
Pau Espin cfad27be56 osmo-gsm-tester: Pass conf dir through -c cmd line arg instead of env var
As of osmo-gsm-tester.git Change-Id
I7eb69f870d0dcb5906d45ae067d6bed1aabf5862, the enviornment variable
OSMO_GSM_TESTER_CONF is deprecated in favour of already existing -c cmd
line argument. Let's use it while still providing the docker setup with
a way (using same env var name) to modify where the conf dir is to be
found inside the docker container (for instance, to provide an external
conf dir).

Change-Id: I54ea9dc4d0bb205debf312f5a37053bc60cfcdb7
2020-05-07 18:49:11 +02:00
Pau Espin 428858e642 osmo-gsm-tester: Require debian-stretch-jenkins as Dockerfile suggests
Some days ago the Dockerfile was changed to pull from
debian-stretch-jenkins instead of debian-stretch-build, since the first
one has extra runtime dependencies required by osmo-gsm-tester.
However, the jenkins script is still requiring the old dependency. Let's
update it accordingly.

Change-Id: If33aab60e04da7beb4cd0715d5cb3145c001823a
2020-03-31 19:31:59 +02:00
Pau Espin 52be9c2e40 osmo-gsm-tester: Print colored run output succes/failure
This way one can quickly see if osmo-gsm-tester run fine or an issue
ocurred and logs need to be checked.

Change-Id: I0b267889f403fc1505f9dd859568bc15a120dd81
2020-03-20 19:17:54 +01:00
Pau Espin 8e8f671711 osmo-gsm-tester: Allow changing host's trial directory
It's set to /tmp/trial by default for convenience, since it's a
temporary directory and easy to remember and to access. Still, let's
give the opportunity to change it (if user wants it to be stored in
persistent data or if has low amounts of non-persistent memory).

Change-Id: I2a7ea361c6156c97bd8d2d94cf1b6856344d4d9f
2020-03-20 19:17:35 +01:00
Pau Espin 41230705dc osmo-gsm-tester: Build srsLTE inside the docker instance if inst not provided by host
osmo-gsm-tester.git/contrib/jenkins-build-srslte.sh cannot be used
because there's a need to split the fetch step from the build step.
That's because we want to fetch in the host (in order to use host's user
ssh key for potential private repos) while still building inside the
docker container, where we have all the dependencies (and where the
binaries are going to be run afterwards by osmo-gsm-tester).

During the changes above it was also noticed that /tmp/trial on the host
got its UID+GID changed (because we switch user inside the container to
downscale privileges). Fix it by chown'ing the directory back to the
host user's UID+GID.

Change-Id: Ia0db8fba840392a0b7883cfc15e45c2e80407a16
2020-03-19 20:13:58 +01:00
Pau Espin 9145a91594 osmo-gsm-tester: Allow passing osmo-gsm-tester params from jenkins.sh caller
After this patch, one can run osmo-gsm-tester with specific parameters
(debug level, suite and tests to run, etc.) by using
OSMO_GSM_TESTER_OPTS variable:
OSMO_GSM_TESTER_OPTS="-s 4g -t ping -l error" ./jenkins.sh

Change-Id: I2e8ff51a3152125148c6a117a987e8c11a576e1e
2020-03-12 15:49:48 +00:00
Pau Espin d61b741a61 osmo-gsm-tester: Allow setting rtprio inside the container
This fixes for instance srsLTE being unable to create a thread with
realtime priority.

Change-Id: If0d033c6e912795804e6d7322c22fdfc6602028b
2020-03-12 15:49:48 +00:00
Pau Espin 2a9cf7a53a osmo-gsm-tester: Improvements anv fixes to run 4G network with latest ogt version
* Fix wrong KI.
* Add an extra IP address to slave so that ENB and EPC can be run on
  different IP addresses and their GTP ports don't collide.
* Add required rf parameters to resources.conf

Change-Id: I0198bc99f75e9567ee717aa79e434ec28705fac9
2020-03-02 17:28:39 +01:00
Pau Espin c9fa2a8808 Introduce osmo-gsm-tester docker setup
This set up allows running a typical osmo-gsm-tester set up with a main
unit (ogt-master) attached to one (or more) slaves where resources are
located and processes are run.

As an example, current config allows running an iperf3 test over an srsLTE
stack using the ZeroMQ backend.

Change-Id: Iac7c0b613048ce332642d3957c55cc7c53b56d42
2020-03-01 19:23:00 +00:00