Commit Graph

69 Commits

Author SHA1 Message Date
Holger Hans Peter Freyther 90b050764a Be able to switch-off ASAN builds of our binaries.
Inroduce a way to not take a 2x performance hit when testing. It
is of importance if we run with hundreds of BTSes and 10k+ subscribers.
In the absence of using getops or shflags use an environment for it.

Change-Id: I540ba1c35e8fb72abcee0d86e0bdc1136b47345c
2018-09-26 07:27:39 +00:00
Holger Hans Peter Freyther fd760f6702 Package mobile and virtphy as part of osmocom-bb as well
Change-Id: Ie44dca72327e928073b00cde434d1cf2de574d9c
2018-09-26 07:27:39 +00:00
Holger Hans Peter Freyther 9eafb1372e Optimize and re-use an existing repository
Instead of cloning osmocom-bb three times this will allow us to
re-use the repository. Simply change the directory, set the new
origin and fetch.

Change-Id: I63f103b2f70559e969e8c66477ab9ee7f2886832
2018-09-26 07:27:39 +00:00
Pau Espin cbbe5d8c1a contrib: Use correct var to write repo name in git_hashes.txt
We want to write repo name in there, not $dep which actually doesn't
exist in local context of have_repo function. In most cases it's
actually the same because in almost all cases $dep is passed as $1 to
have_repo and thus is the same as local $repo. But in a few recipes
which don't use build_repo directly but instead use have_repo and build
manually, $dep may not point to $repo. That's the case for osmocom-bb
for instance. As a result, "libosmocore" is printed twice, were second
word should be "osmocom-bb".

Change-Id: I7a7db7cf4cc020295d216c60d6dc688f110916dc
2018-09-25 10:20:59 +00:00
Pau Espin 8cc84d8404 contrib: Build osmo-sgsn with IU support
Change-Id: I810ae848c350550430c1918b3abb4376d21d7317
2018-09-19 14:05:41 +02:00
Pau Espin 26d7f8d462 contrib: Build osmo-msc with IU support
Change-Id: I68503ae2f27948aff60a9424e6b114db548d79e9
2018-09-19 13:14:19 +02:00
Pau Espin 1e2a041773 contrib: Add jenkins-build-osmo-iuh.sh
Change-Id: I75cb9551db6b1b4aa5bfb76177694c14fad82f04
2018-09-19 13:02:56 +02:00
Holger Hans Peter Freyther cb132bd79f build: Add overload to clone repo and build in subdirectory
To build osmo-nitb we need to clone "openbsc" and then enter the
"openbsc" sub-directory. For building "mobile" and "virt_phy" of
OsmocomBB we will need to do something similar. Instead of added
more hardcoded paths, add a variant that allows to specify the
source directory.

Change-Id: I67fbd54296f2c68316bf8e89cfeb37d147193d53
2018-09-18 06:29:17 +00:00
Pau Espin 4aeb4300b1 Build and use osmo-bsc_mgcp from openbsc.git instead of osmo-mgw.git
In osmo-mgw.git 31b4729f2731c747b8b33c4646dd5ade2ace29bc, osmo-bsc_mgcp
was dropped and the one from openbsc.git must be used.

Change-Id: Ib1c46baf4d36ab18f8064a2234a0ba28a1e7d2c2
2018-09-13 12:20:43 +02:00
Pau Espin 7a216e54b0 contrib: Disable installing unneeded systemd service files
Otherwise since we install without root perissins to a local directory,
systemd files will fail to be installed to regular systemd location
/lib/systemd/system/).

Change-Id: I20a285e4e92fec7990770568e8d5dc117d6bf477
2018-09-12 14:46:30 +02:00
Harald Welte 9d8fec54e6 jenkins-build-osmo-msc.sh: Build osmo-hlr before osmo-msc
osmo-msc now needs libosmo-gsup-client, which is built during omso-hlr
compilation.

Change-Id: I67c5d168011a385fd4f68df351e0a93e9bef37a7
2018-08-08 08:01:47 +02:00
Pau Espin 618bb3a6bf contrib: build-osmocom-bb: Download and install osmocom-bb fw from OBS
As it's quite complex to build osmocom firmware nowadays (a specific old
release of gcc and binutils are required to build it), instead download
the already built binaries from OBS.

Change-Id: I2571268d91e2430a270e51438608e7dbd121e76d
2018-05-22 15:52:56 +02:00
Pau Espin f4406b2b22 contrib: Add jenkins-build-osmocom-bb.sh to build osmocon
Change-Id: Ic5b29951d3fd143dce5826138c84301a9797b1ef
2018-05-18 12:14:58 +02:00
Pau Espin 1828d352c1 contrib: common: create_bin_tgz supports sbin dir now
This is a preparation for inclusion of osmocom-bb build job, which
installs binaries such as osmocon in sbin.

Change-Id: I562721af82e481e926ee65dbcd9dcc5b55057ae8
2018-05-18 12:14:09 +02:00
Pau Espin 7043996847 contrib: common: Record repo curr rev in have_repo instead of build_repo
This way scripts making use only of have_repo (to have build specific
insturctions) can still benefit from that code.

Change-Id: I03149942ac1d279a15c71df3eb880c331c8fc155
2018-05-17 18:18:50 +02:00
Pau Espin 553eda638c osmo-trx binary is now called osmo-trx-uhd
Change-Id: Ibf111ba89b24964127b9c1db7102953e1dba3181
2018-05-07 00:47:40 +02:00
Pau Espin 1cd017d0c7 build-osmo-trx: Disable asan in osmo-trx builds
Change-Id: Ic4ebbc3f66fd9de2343d486ed20a0f08fc11e326
2018-04-19 12:10:10 +02:00
Pau Espin ec3852f1bd contrib: build-osmo-trx: Enable addr sanitize for osmo-trx
Change-Id: Iad90c7c8c2098680276de000c36bec0224f9746d
2018-04-16 16:24:30 +02:00
Pau Espin 4a338c7dba contrib: build-osm-bts-sysmo: openbsc dep no longer needed
Change-Id: Iafd5ee1df001719ff6165ada996359b92116671e
2018-04-16 16:24:30 +02:00
Pau Espin 008f6165ed contrib: Enable address-sanitize in builds
Don't enable it for binaries built with sysmocom's cross-toolchain since
it doesn't contain required libasan.

Also, don't enable it on openbsc since we don't have an enable-sanitize
flag there.

Change-Id: Ibef6c2fc497bce0d799116a854a48872f9ca16d7
2018-04-16 16:23:30 +02:00
Pau Espin e5a7a40faa contrib: build-osmo-bsc: Add aibsip-find and ipaccess-config binaries to archive
They will be required by Nanobts class.

Change-Id: Ib0e003f74603c3146aa76d581ab493f960f73ab5
2018-03-09 18:54:28 +01:00
Pau Espin 274c8bd637 contrib: build-osmo-bts: Remove dropped dependency openbsc
Since osmo-bts ec33b0397f5d71248c5834513d4be7b9b0e46366, it doesn't
require openbsc anymore to build.

Change-Id: I8a1918971388afad41308629c1851614d1381f25
2018-03-09 18:54:28 +01:00
Alexander Couzens 89da3704bc jenkins: update poky version 2.3.2
The sysmobts 2017 releases are using poky 2.3.2

Change-Id: If6e8a5702e4c9b24e758e3aa5f390e786c51c384
2018-03-06 15:10:24 +01:00
Alexander Couzens 9695a1cbc1 jenkins: use env POKY_VERSION POKY_PATH to find poky
Instead of hardcoded values, use defaults and allow jenkins to override
the defaults.

Change-Id: I1403b32cdf30420f3b02c41c2627b71fcbeae9ab
2018-03-06 15:09:26 +01:00
Pau Espin b2a94e8430 contrib: build-osmo-trx: build new dep libosmocore
Since 8b843e5bed6e3dab1068b86805e557a196f9aa4c, osmo-trx depends on
libosmocore.

Change-Id: I63d09339da5be7af638efe9e07f0c0ed31738ed1
2018-02-23 12:33:39 +01:00
Pau Espin ef96749a2c contrib: Add binary osmo-mgw to artifact with same name
Change-Id: I706a4428f01b4b5be2bedc2507f67d8d7a4ffc8d
2017-11-09 12:08:41 +01:00
Pau Espin 37d38f0bd9 contrib: Disable new dep gnutls in sysmocom SDK builds
Recently a new dependency on libgnutls was added to have a fallback for
kernels prior to 3.17 in which getrandom syscall fails, see libosmocore
ed029dfab959bca74bd43d86922727c2047eeb4d.

Since sysmobts has a kernel newer than 3.7 for a long time now, but we
are still running a 201310 image (and sdk) on them which doesn't contain
gnutls, let's disable it at configure time to fix the build against the
current SDK.

Change-Id: Iaa300c0eda2cf857f8c2915c6491efe583a12874
2017-11-06 15:39:20 +01:00
Pau Espin 3469b9941f contrib/jenkins-run.sh: Log and archive ofono output during test time
Change-Id: Ie83b03cef4f3ca3a2d91ac4731b3ed602ab1eadf
2017-10-17 15:35:54 +02:00
Neels Hofmeyr e17d13dfab jenkins: fix build of osmo-sgsn: use osmo-ggsn
osmo-sgsn change-id I91a126952ae75ae9ba1f42aac4d26413384bba5d and commit
a3b73e917b653d13d027cff2c95a56bbc1264446 has broken compatibility with
openggsn.git, by requiring current osmo-ggsn version (1.0.0).

Fix build fallout: use osmo-ggsn instead of openggsn.git.

Change-Id: I5161983ef625465e21b95578ab5648ecc73d6069
2017-10-02 16:12:25 +02:00
Pau Espin cfac993bf2 contrib: Build octphy osmo-bts variant and make it generic
This is a first step to add support for osmo-bts-octpy to
osmo-gsm-tester.
There's no point in building separate insts for different osmo-bts
variants which run on the main unit and which come from the same git
repository, this we make the osmo-bts-trx one generic to handle all
variants which fall into the description above.

Tested locally on my laptop that it builds susccessfully.

Once this patch is applied, jenkins jobs need to be adjusted:
- RnD: osmo-gsm-tester_manual-build-all
- Prod: osmo-gsm-tester_build-osmo-bts-trx (and rename it)

Change-Id: Ib8814e4ce49596b586990f20d7d625a719852e90
2017-09-15 09:59:00 +00:00
Neels Hofmeyr c28769488e add jenkins-make-check-and-run.sh
Change-Id: I493142bb4cd6c0465e34b4171461d28455315ef4
2017-09-14 00:21:18 +02:00
Neels Hofmeyr a8647f304c fix build: properly remove artifacts
The jenkins scripts are run by sh, which does not support the {a,b} syntax
shell glob. As a result, old build artifacts pile up in the workspaces.
Use two separate lines to remove .tgz and .md5.

Change-Id: Ib7e5995aa6914e34f8b7bbb8a8ed46ff9230a913
2017-09-13 19:17:54 +02:00
Neels Hofmeyr ebc7426f85 jenkins: properly clean previous artifacts
Drop the second 'rm -f' from the rm shell command (typo).

Remove all artifacts matching *.build-*.{tgz,md5} because if a job changes the
name of its artifact, the previous artifacts would remain.

(I hit this with the new scripts being originally wrong and all producing
'osmo-msc.*' artifacts, and those stuck around in the workspace even after the
name was fixed.)

Change-Id: I00d246226f4c723696bb737ed707cfd0e4c33714
2017-09-07 18:34:07 +02:00
Neels Hofmeyr 36e0404f45 jenkins: build from new osmo-{msc,bsc,mgw,sgsn} repositories
The idea is to build each binary separately: even though osmo-msc requires
libosmo-sccp, which already includes the osmo-stp binary, we still want
osmo-stp to be built from a separate script. The reason: to track down
regressions, we can change the versions each binary is built from separately.
The additional build effort and jenkins script multitude is acceptable.

Change-Id: I194ad5169dbe013c8e1cf9d631033cb2576744dd
2017-09-07 00:59:46 +02:00
Neels Hofmeyr 713a1201d2 jenkins-common: ensure requested binaries indeed have been built
Recent change Ib1a00b2149453fedf9ece0460dd4d6e83f774d45 drops binaries from a
build artifact by leaving only explicitly requested ones. This adds a check
that the requested ones indeed exist.

Change-Id: Iceddeee6aebb1cdb54d7304495c3e332390261db
2017-09-07 00:59:46 +02:00
Neels Hofmeyr 1921c0f6c9 jenkins: per build, drop programs built "unintentionally"
Each of the jenkins-build-* scripts intends to build a specific set of
programs. While compiling dependencies, other programs may end up in
$prefix/bin. Drop those other binaries to reduce potential confusion.

Add arguments to the create_bin_tgz function: callers need to list exactly the
$prefix/bin/* binaries that should be tar'd. All others are first removed from
the prefix.

Adjust existing scripts to provide such binary names.

Change-Id: Ib1a00b2149453fedf9ece0460dd4d6e83f774d45
2017-09-05 01:21:25 +02:00
Pau Espin d3fce46f58 contrib: Add scripts to build osmo-pcu
Change-Id: I90e7d2a79fb4ab7cc7fae5f3a1287a2e5bb748ab
2017-08-31 17:23:26 +02:00
Pau Espin 4773853cb0 Split osmo-trx from osmo-bts-trx
In the future, some environments/products may come with a trx interface
pre-installed. Start work to easily disable launching it.

Change-Id: I556c3e2ba16753393c7e70800c533a18122daeaa
2017-08-18 07:58:52 +00:00
Pau Espin e5b0366849 contrib: Disable doxygen doc generation
The --disable-doxygen was recently added to libosmocore and
libosmo-netif. No need to manually remove documentation anymore.

Change-Id: I3ca3dd1c115fc6784e4dc26a5ff5bf35d65b4e22
2017-07-06 17:14:48 +02:00
Pau Espin 3c35df3e28 contrib: Fix removal of doc directories
The docs are actually not removed because the shell takes
{libosmocore,libosmo-sccp} as a string literal if found inside quote
marks, see [1] for more information.

[1] https://unix.stackexchange.com/questions/67757/wildcards-inside-quotes

Change-Id: Ida8941525db2d6a80539ffda29fb4fa74dbb1e16
2017-07-05 10:53:13 +02:00
Neels Hofmeyr db2d76bb52 jenkins: build msc using libosmo-sccp master
Since 81c0bcab068174036f6897e69311f413d94c74d4 was merged, it is not necessary
to build the neels/aoip branch anymore. Other patches on that branch are not
necessary either.

Change-Id: I850e0dd2fc61d59d56c0dd69ee00b6e19685fb95
2017-06-29 19:45:49 +02:00
Neels Hofmeyr b398b52ad5 jenkins: fix: recent change broke jenkins build
Recent commit 851802b927 introduces a build
branch, which works fine, but only on the first run. A second run in the same
repos can't delete the branch git is currently on.

I've had enough of git being impossibly difficult in UI to simply checkout a
hash or a branch now. Completely wipe out the git repository and clone a fresh
one every time.

Unfortunately, 'git clone -b' doesn't allow passing a commit hash, so we still
need to do a clone-then-checkout dance. At least now we know it will work the
same on every run.

Change-Id: I6aca4c53a796312248a189b815dfc1198a173ed9
2017-06-23 04:13:30 +02:00
Neels Hofmeyr 2581b50408 jenkins-build-common.sh: cosmetic: clear repos a bit later
If we rm -rf * and then checkout a branch, the log prints the entire file tree
as deleted. Instead, rm just before the git reset --hard, which avoids the
extra output.

Change-Id: Ib5b28a82f05d941eae8f3a2f468ef1e9d67e6180
2017-06-23 04:07:44 +02:00
Neels Hofmeyr 851802b927 jenkins-build-common.sh: fix being stuck on branch
It's hard to allow both branch names and git hashes. For a branch, we want to
prepend 'origin' to use the upstream branch. For a git hash, we don't.

We so far prepend 'origin/' if the current branch name doesn't resolve, but
that's not enough. If a local 'master' branch exists, we would stay on that
branch instead of origin/master.

Rather, prepend 'origin/' if 'origin/$branch' exists. Git hashes should not
exist as 'origin/123abc...' and used as-is, where branches from origin should
be updated to upstream by prepending 'origin/'.

Also create a local branch to build. Always force-remove the branch and
re-create from the origin/name or git hash. Keep the reset --hard for paranoia.

Change-Id: I2e610b357f8559c6b6ffb544eb0a952f04dd9f70
2017-06-23 03:52:26 +02:00
Neels Hofmeyr de79cb155d jenkins: aoip: move to libosmocore master
The patches needed for AoIP have now been merged to libosmocore master.

Change-Id: I31f627f24e0e111c2c3461dbdc88f0e54ebf0c8c
2017-06-23 03:01:43 +02:00
Neels Hofmeyr 640c7760e9 jenkins-run: create bin.tgz separately from run.tgz
The binary tars are fairly large, and usually one wants to investigate the run
dir logs without any need to download the binaries. Archive the binary tars
separately from the run logs.

Change-Id: I23e6df0d30fc9ea7c5b48bb2364be075d910bfcd
2017-06-18 02:15:22 +02:00
Neels Hofmeyr eceb3ce032 aoip: use libosmocore neels/aoip branch until patches are merged
Change-Id: I22623135486e41bfc2d32de614124276f330dc36
2017-06-13 15:28:40 +00:00
Neels Hofmeyr 53e758ae4c jenkins: extract common parts of build scripts to separate file
Have all complexity in one common shell script, greatly simplify the individual
scripts.

This allows to provide a specific branch or git hash to build instead of
current master. Some scripts allowed to provide branch names before, this now
also allows using git hashes directly.

Environment variables can be used to override the git hash/branch to use for
specific repositories.

Motivation for this patch: we need this to investigate failure causes more
easily.

Change-Id: I5ac2f90d006a1b2f6c246976346d852a70c89089
2017-06-02 16:58:37 +02:00
Neels Hofmeyr e62364e7fc jenkins: remove unused file: jenkins-remote-update.sh
Change-Id: I2858331393722d13e05d194656d8ee4dc17253f9
2017-06-02 14:28:59 +02:00
Neels Hofmeyr 3b906728b7 jenkins: remove unused file: jenkins-build-osmo-bts-octphy.sh
Change-Id: Ia030aebd7341f198bc768d2beb6abbe8f57a57a0
2017-06-02 14:28:49 +02:00