summaryrefslogtreecommitdiffstats
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2018-05-04osmocom-nightly-packages: replace version string with by git-version-genAlexander Couzens1-3/+22
E.g. old version 0.10.2.20180501 (0.10.2 last deb version, 20180501 was the date) The new version will look like 0.10.2.279.178b - 0.10.2 is the last tag - .279 is 279 commits since the tag - 178b is the actual short git rev The direct output of ./git-version-gen couldn't be used because debian forbids using a minus (-) in upstream versions. Change-Id: I2da90ada90adf8ef8f8cfee3d26f86fbd3cec181
2018-04-26scripts: osmocom-*-packages.sh: Build libusrpPau Espin Pedrol2-0/+3
Depends on: I5ff1d76f533b9ac68ab3f2c70ead6b66f4413b4f Change-Id: Ic742db854b8a3aba6ddc85ffb41fc6f4697c572d
2018-04-16scripts/docker-cleanup.sh: set permissions to 755Alexander Couzens1-0/+0
It will otherwise not executed by the cron, because the cron is checking for the executable bit Change-Id: Ie9d67b157d62b38b62f5e74406d14344f90d07b8
2018-04-11add docker-cleanup.sh scriptHarald Welte1-0/+9
This script should be executed regularly on all build slaves that have docker in order to discard unused images/layers. It would be a good idea to call "fstrim /" afterwards in order to get more SSD performance. However, the latter requires root access, and hence cannot be called by the 'osmocom-build' user and thus jenkins. Maybe we should install it as a cron job or systemd periodic timer job? Related: OS#3144 Change-Id: I688b952578507a9cc28fe682221b5c7e3a245519
2018-04-09osmo-clean-workspace.sh: make more robust against broken git clonesNeels Hofmeyr1-4/+25
Change-Id: Ifa70fd75468b3e21b5c9327ea28bc7a4c8cb549d
2018-04-09osmo-clean-workspace.sh: cosmetic: no need to clean -e depsNeels Hofmeyr1-1/+2
git clean always excludes git clone subdirs; furthermore, even if I supply a dir as -e, the contents of that dir still get cleaned out. So it is useless to pass -e on the commandline. Drop it. Change-Id: I2b59cc9c9adf88a2663469b22cfeffbd66b5bf2e
2018-04-02scripts: osmo-deps.sh: Allow building against tagsPau Espin Pedrol1-1/+6
In case we provide a tag, origin/$tag doesn't resolve correctly, we must use $tag. Same happens probably if we want to build against a specific commit hash. Change-Id: Ica50080c8b3e20686fe6f47a2b61718ef4a66d95
2018-03-07osmocom-latest-packages.sh: Catch latest tags outside master branchPau Espin Pedrol1-1/+1
Some projects, like osmo-trx, may have tags created in a non-master branch. Let's catch those too. Tested with several osmocom repositories. The ones showing different behaviour are osmo-trx (expected) and other repositories which have wrong or no tags and are anyway not used since there's no OBS build for them. Old cmdline is left of ==, new is right: artwork: ( == ) asn1c: ( == ) docker-playground: (debian-jessie-buildslave-0.1.0 == ) layer1-api: (superfemto_v3.8.1 == ) libasn1c: (0.9.28 == 0.9.28) libgtpnl: (1.1.0 == 1.1.0) libosmo-abis: (0.4.0 == 0.4.0) libosmocore: (0.10.2 == 0.10.2) libosmo-netif: (0.1.1 == 0.1.1) libosmo-sccp: (0.8.1 == 0.8.1) libsmpp34: (1.12.0 == 1.12.0) meta-telephony: ( == ) mncc-python: ( == ) octphy-2g-headers: (OCTSDR-OPENBSC-02.09.00-B1121 == ) openbsc: (1.0.0 == 1.0.0) osmo-bsc: (1.1.2 == 1.1.2) osmo-bts: (0.7.0 == 0.7.0) osmo-ci: ( == ) osmocom-bb: (osmocon_v0.0.0 == ) osmo-ggsn: (1.1.0 == 1.1.0) osmo-gsm-manuals: ( == v1) osmo-gsm-tester: ( == 0.1) osmo-gsm-tester-conf: ( == ) osmo-gsm-tester-sysmocom: ( == ) osmo-hlr: (0.1.0 == 0.1.0) osmo-iuh: (0.2.0 == 0.2.0) osmo-mgw: (1.2.0 == 1.2.0) osmo-msc: (1.1.2 == 1.1.2) osmo-pcu: (0.4.0 == 0.4.0) osmo-python-tests: ( == ) osmo-sgsn: (1.2.0 == 1.2.0) osmo-sip-connector: (1.1.0 == 1.1.0) osmo-trx: (0.2.0 == 0.3.0) pysim: ( == ) python-smpplib: ( == ) Change-Id: I3b521a194f0ae9fdfa358423e66f30c1316c23e8
2018-02-27osmo-clean-workspace: fix force checkout of a subdirectoryAlexander Couzens1-2/+2
Instead of the subdirectory, the main repository was forced checked out. Change-Id: If23e89872edf48dc5b751b3c069faf585bd6a3ef
2018-01-12Use stow for dependency managementAlexander Huemer1-1/+9
This commit introduces the usage of GNU stow[1] for dependency management. Stow uses symlinks to make dependencies available in a single directory althoguh they were installed in distinct directories. Keeping installation directories seperate has the advantage of letting the build fail if AM_CFLAGS and LDADD do not contain all dependencies which are actually used. Installing multiple dependencies into a single directory causes x_CFLAGS and x_LIBS variables to magically point where other dependencies are found as well, therefore missing entries can be overlooked. Stow acts as a convenience layer here, making it unnecessary to supply a list of locations in LD_LIBRARY_PATH, PKG_CONFIG_PATH and so forth for building when dependencies are installed in distinct directories manually. Stow has to be present on the jenkins build nodes for successful executing of osmo-build-dep.sh. [1] https://www.gnu.org/software/stow/ Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a
2017-12-14add libgtpnl also to 'latest', not just to 'nightly'Harald Welte1-0/+1
Change-Id: Ifd9b3c6e98d890f135356648ef3f9a62c07dcf94
2017-12-13rewrite osmocom-nightly-package based on the old osmocom-nightly-split.shAlexander Couzens1-67/+162
The split build script also initilize the repository if it's empty and doesn't need any state of the osc repository. It also downloads bumpversion and limesuite Change-Id: I3b55e14b5b4915a3aae23ee382d65bce4ef82774
2017-12-07osmocom-nightly/latest: check if osc is installedAlexander Couzens2-0/+10
Change-Id: I10ce91eab415c19bb811fbb2fd617d5ce2b58d41
2017-12-06osmocom-nightly/latest: document which debian packages are requiredAlexander Couzens2-0/+6
Change-Id: If127d0e852ea8e321461d6aa709621167a0a8ecb
2017-11-21osmocom-latest-packages: only publish source tar balls if a new tag was createdAlexander Couzens1-9/+27
OBS should only be updated if there is a new tag. Change-Id: Ife10c9819e5971b001c5be9d313781eb3fd19e23
2017-11-21osmocom-latest-packages: fix shellcheck warningsAlexander Couzens1-13/+13
Change-Id: I1733658ce9b3de595b6087a58da0cb8c8bcf928f
2017-11-21osmocom-latest-packages: introduce $TOP dir variableAlexander Couzens1-6/+8
Using a $TOP variable makes directory paths more clear to understandable. Path now expressed starting from the TOP dir instead of using ../../../foo Change-Id: I7a87532a3232fbcfb5f676588991dbc59a34f739
2017-11-21osmocom-latest-packages: set -e: exit on any failureAlexander Couzens1-1/+1
Change-Id: I8dbf32a731d01b6eba933b8af22500c5edd1502d
2017-11-07osmo-deps.sh: Force fetching git tagsPau Espin Pedrol1-0/+1
It was recently spotted, in a osmo-msc jenkins build, that an updated dependency (new commits to be fetched) contained a new tag which was not fetched with the commit. It resulted in the Makefile generating an old .version file, which ended up generating a library version in the .pc which later in the build make the configure script fail while checking at the dependencies. As far as I could understand after reading several discussion threads, it seems git fetch doesn't necessarily fetch and store locally all new tags found in the remote, and we need to explicitly add the --tags parameter to be sure all of them are downloaded. This patch adds a new fetch line instead of patching the one already present because it seems in old versions of git the --tags parameter had a different behaviour, in which only tags and not branches are fetched. This way is ensured that we get both correct regardless of git version. Change-Id: I4bfe4846959c70e435d6792a755a6f2a6f0a932c
2017-11-01osmo-deps.sh: fix: add 'origin/' to branch, to properly updateNeels Hofmeyr1-1/+1
If I have a git clone that once did 'checkout [-f] branch', and if then origin/branch gets updates, doing another 'checkout -f branch' only goes back to the local tracking-branch of origin/branch. We never pull in changes from origin/branch anymore as soon as a local branch exists. Always prepend 'origin/', so that 'checkout -f' goes into detached-HEAD state onto the newest fetched revision. Change-Id: Ia715a100b5beaf7e612c2c64cdad8819aa00c8bd
2017-10-30osmocom-nightly-packages: Build latest libgtpnlHarald Welte1-0/+2
libgtpnl is the userspace library for using kenrel GTP-U support, which is used by openggsn (and will be used by osmo-ggsn). Change-Id: Iad600a36cb658bbd874b4587ec514f49703d6a45
2017-10-28Add osmocom-latest-packages.sh script for network:osmocom:latestHarald Welte1-0/+62
Change-Id: I8b036e57d8a5f4e08081c9641bbef50fead0c52a
2017-10-28osmo-deps.sh: make sure to not clean all deps when inside a dep dirNeels Hofmeyr1-2/+2
Make sure osmo-deps.sh passes no $deps in to osmo-clean-workspace.sh. In most builds, $deps is a relative path, and when within a dir that contains no such subir, calling osmo-clean-workspace.sh has no effect. However, in some, $deps is passed in as absolute path, so when within a deps/... subdir in osmo-deps.sh, the script would still find the abspath and clean out all deps subdirs; for example in osmo-bts. Change-Id: I431d20aedefc708645a1f1862334cffaef20b928
2017-10-27scripts: use 'git checkout -f' instead of 'reset --hard'Neels Hofmeyr2-2/+2
'checkout -f' more accurately does what is intended. 'reset' changes the current branch to some hash, 'checkout -f' force-checkouts another branch. Change-Id: Ic6279ebaf8160bceb3fa2ab40eff0b888ecd5009
2017-10-27osmo-build-dep: offload branch checkout to osmo-deps.shNeels Hofmeyr2-9/+7
In osmo-deps.sh, add second arg $branch, and also name the first one (i.e. $project). Use the passed branch or 'origin/master' by default. In osmo-build-dep.sh, it's not necessary to do a second 'git rev-parse HEAD', osmo-deps.sh already does it. Change-Id: I598c41a12352acea6e49a321ad2f665f6ea07a44
2017-10-27add osmo-clean-workspace.sh, use in osmo-deps.shNeels Hofmeyr3-1/+48
So far, each jenkins job does its own cleanup, more or less well. Also, jenkins git config offers the 'Clean before checkout' option, which seems to fail when there are non-writable leftovers from a failed 'make distcheck'. Furthermore, our jenkins build slaves have unused compiled binaries piling up by the gigabytes: each matrix build x each parallel build and each compiled dependency therein builds .o, .a, .so and executables plus installs them to a local prefix, and just leaves them sitting around to rot until the job runs again. Instead, we want to clean them out when building is done. All of this calls for a unified cleanup script that knows how to clean a workspace properly, to run once before and once after each jenkins build. Here it is. Use that function in osmo-deps.sh instead of duplicating cleanup steps. Change-Id: I2409b2928b4d7ebbd6c005097d4ad7337307dd93
2017-10-26osmocom:nightly OBS: add osmo-bsc package / remove nitb-splitHarald Welte2-119/+2
This was the last package that we only built in osmocom:nitb-split:nightly, so we can remove the latter, too Change-Id: Ib99e0775e9db30ec3c5263bb3a364d8cab4633c3
2017-10-26osmocom:nightly OBS: Add osmo-msc + osmo-mgwHarald Welte1-0/+4
Change-Id: Ie417f912f11f3a45c6efb39595d6a4d89cf3a058
2017-10-26osmocom:nightly OBS: remove old osmo-stp/cellmgr-ng packageHarald Welte1-2/+0
this package doesn't exist in the OBS anyway, yet we continue to attempt to upload it there. Stop that :) Change-Id: I0f0726ed412e4a281dcf99047ca22b494216b4ad
2017-10-10nightly-pacakges: don't copy over gsm_data_shared.[ch] anymoreHarald Welte1-8/+0
This is no longer needed by upstream osmo-bts since Change-Id I9f004fb5c4c1db29d4792dfd281d388c7063da13 Change-Id: Ie53482a1538d1559e764da86dbbb78031c9c386b
2017-10-06osmocom:nitb-split:nightly Re-introduce osmo-sgsn + osmo-ggsnHarald Welte1-0/+4
For some strange reason, in commit 8e9fe0808072d3f5eca8b4c6fac9865a52c9beb3, the osmocom:nitb-split:nightly package feed was rendered to use old packages for sgsn+ggsn, rather than current ones by removing the "osc upload" from this script, but still leaving the packages in OBS at https://build.opensuse.org/project/show/network:osmocom:nitb-split:nightly Removing them half (only in osmo-ci but not at OBS) is a bad idea, as it leaves people with old packages who actually want to use nightly builds. Also, removing the packages in general is a very bad idea. People are *either* using osmocom:nightly, *or* they are using the osmocom:nitb-split:nightly feed, but not both. So we cannot remove any packages from the osmocom:nitb-split:nightly feed until we have introduced all those packages to osmocom:nightly *and* we have given people sufficient notice to update! Change-Id: I5c091127d92a4b4beb7355e16abd9788fa3b9fe5
2017-10-06osmocom-nightly-packages.sh: Add libasn1c required by osmo-iuhHarald Welte1-0/+2
Change-Id: Ia455655eaf53faeab6c3049a54c153cb9ddd3d37
2017-10-05Add osmo-iuh to nightly .deb buildsMax1-0/+2
It produces libosmo-ranap-dev which is required by osmo-sgsn. Change-Id: Ief40137cc94e2c54da8c12e2a00953834a578171
2017-10-04Fix OsmoSGSN nightly buildMax1-1/+1
It depends on libgtp provided by OsmoGGSN so let's build it in that order. Change-Id: Icedc259ddc3a3b83ce8fe87f5572596ef29d6814 Related: OS#2527
2017-10-02Use new GPRS repositoriesMax2-6/+2
* use coverity check on osmo-ggsn instead of openggsn * move osmo-sgsn and osmo-ggsn from nightly-split into nightly Change-Id: Ia49969cbfb9ef57b635a3b5759f411f71a54f8e1
2017-09-19Gerrit verification jobs as Jenkins Job Builder YAML [1] file.André Boddenberg1-22/+0
All jobs are in jobs/ directory and will be automatically verified and deployed in a follow-up commit. Note: osmocom-nightly-nitb-split.yml has been moved to jobs/ dir. [1] https://docs.openstack.org/infra/jenkins-job-builder/ Change-Id: I04387367a6e2d737bfb50423c81a8908d3c2a89f
2017-09-06build both openggsn (old) and osmo-ggsn (new) in nightly feedsHarald Welte1-0/+2
Change-Id: I310c6237ce5ec34e4cc008123a5219d5cadaf7a3
2017-09-06change from openggsn to osmo-ggsn in nightly nitb-split packagesHarald Welte1-2/+2
Change-Id: Ie0d6d39ad0451733f6577844737f63028d087d8e
2017-09-04Change used protocoll for 'git ls-remote' call from https to git.André Boddenberg1-1/+1
Otherwise script depends on availability of https://git.osmocom.org, which is currently down. Change-Id: Icf2a6b425177ef24aef1dba6e270d36fdc05d214
2017-09-03debian nightly: don't use pre_release branches, use masterNeels Hofmeyr1-5/+5
Related: OS#2297 Change-Id: I15e114389095af381978201c1bb3aad2a51fbaaa
2017-08-26scripts: add requirements.txt to list jenkins-job-builderAlexander Couzens1-0/+1
Change-Id: If25ce84593bbf6a393928a8f4e1670f320c48ca4
2017-08-26osmocom-nightly-nitb-split.yml: schedule the job to be run at midnightAlexander Couzens1-1/+3
Change-Id: I0d80e7d260f9092f44d4d80471a4dd67b7acc839
2017-08-18Add value string termination check from libosmocoreMax1-0/+33
The script by Neels Hofmeyr <nhofmeyr@sysmocom.de> has actually nothing to do with libosmocore itself - it's a generic build-time check used by jenkins so it should be part of this repo to avoid extra checkout of libosmocore just for this script. Change-Id: I079218b61f512975ec5bfc7dc23503ec369cbb5a
2017-08-15add jenkins job builder files for osmocom-nightly-nitb-split.shAlexander Couzens2-0/+26
jenkins job builder is a python library to write jenkins jobs in .yml or .json including templating and basic substition operation. To update the job call: Create your own jenkins_jobs.ini based on the exmaple and call jenkins-jobs --conf ./jenkins_jobs.ini update osmocom-nightly-nitb-split.yml Change-Id: Ie7c655c6e0e3761e7970e479cadb5ae14faa2c1c
2017-08-15create osmocom-nightly-nitb-split.sh based on osmocom-nightly-packages.shAlexander Couzens1-0/+119
Create a snapshot of the nitb split and upload it to OBS. Change-Id: I8bf9fce1547e98c44b62a693ac4aaa4beed1aef9
2017-07-28Introduce artifacts holding dependencies to speed up builds.blobb1-0/+230
Basically, osmo-build.sh holds logic to check whether the necessary artifact is available. If so it fetches artifact, unpacks it and triggers the actual build. In case the necessary artifact is not available osmo-build.sh simply builds all dependencies from source by using osmo-build-dep.sh and archives deps to the ARTIFACT_STORE afterwards. The necessary functions to determine the artifact name from remote and local repositories as well as the handling of artifact files live in osmo-artifacts.sh, which is sourced by osmo-build.sh. osmo-build.sh will be sourced by the contrib/jenkins.sh build script inside each git repository. This automatically triggers the build, so one need to source at the end of each jenkins.sh script. See jenkins-openBsc.sh [1] for more details. Artifacts will be stored as follows: $ARTIFACT_STORE/$JOB_NAME/<dep_1>.<branch_1>.<rev_1>_... ..._<dep_n>.<tag_n>.tar.gz Furthermore, ARTIFACT_STORE environment variable has to be set on all jenkins slaves. The JOB_NAME variables is injected to each jenkins job by jenkins. [1] https://github.com/blobbsen/diy-artifacts/blob/master/jenkins-openBSC.sh Change-Id: Ifee0a2f837d23b19aa5326f810234d5452e47484
2017-06-19lc15: correct default master branchMax1-1/+1
Change-Id: I6e86edc34fdb8c7bc57f87c41e05dd2338dd2506 Related: SYS#3683
2017-06-15Add script for fetching BTS-specific L1 headersMax1-0/+47
Several of the supported BTS models require hw-specific L1 headers for compilation which are stored in separate repository. Instead of copy-pasting code which obtains those header for each BTS it's better to create separate script. Change-Id: I840533d5bf9233822bc0534a25c252f1cab0a7b0 Related: SYS#3682
2017-03-14osmocom-nightly-packages.sh: add osmo-hlrNeels Hofmeyr1-0/+2
2017-03-14osmocom-nightly-packages.sh: chmod a+xNeels Hofmeyr1-0/+0