aboutsummaryrefslogtreecommitdiffstats
path: root/jenkins-common.sh
AgeCommit message (Collapse)AuthorFilesLines
2021-01-25debian10-repo-install-test: new containerOliver Smith1-0/+1
Related: OS#4969 Change-Id: I7addb30aa3f8564dcbdc3f6cf2e2e0cfdf4dd02d
2020-12-18Introduce osmo-ran docker image set upPau Espin Pedrol1-2/+21
See osmo-ran/README.md in this commit for a description. Related: SYS#4889 Change-Id: If5d22e9fa818310cbb4adc34bd7aceb4416ec969
2020-12-01common: Automatize UPSTREAM_DISTRO name based on image namePau Espin Pedrol1-6/+21
Similar to what is already done with DISTRO, which points to given image of ours based on name. This time we do the same with upstream images, such as debian:stretch or centos:centos8. This way, for instance calling docker_images_require "osmo-bsc-latest-centos8" would try to build the osmo-bsc-latest/Dockerfile file starting from a centos8 image. Change-Id: I33cb21aa024396974559fd98f9f3c64e2c351eda
2020-08-27jenkins-common.sh: Add function to print docker network related parametersPau Espin Pedrol1-0/+9
Change-Id: Ie00561de7a4494065156a124565e2190151e6019
2020-08-13Enable IPv6 in docker networkingHarald Welte1-1/+3
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-12jenkins-common.sh: exit early on full diskNeels Hofmeyr1-0/+5
When my disk runs full, jenkins-common.sh fails to create a VOL_BASEDIR right at the start, and hence no testsuite gets its external volumes mounted properly. However, the test suite still starts up with missing cfg files etc, and fails in non-obvious ways, until I find out the disk is full some minutes later. Instead, verify that the base dir really exists or bail out right there. Change-Id: I6540797c8e0ee3e7b09d4a80592d5e270e7d9adc
2020-05-30jenkins-common.sh: support osmo-*-centos8 imagesOliver Smith1-2/+34
Make it possible to call the ttcn3-*/jenkins.sh scripts with: IMAGE_SUFFIX="master-centos8" The existing docker_images_require lines of these jenkins.sh scripts will then call docker_images_require with arguments like "osmo-mgw-master-centos8". For example, from ttcn3-mgw-test/jenkins.sh: docker_images_require \ "osmo-mgw-$IMAGE_SUFFIX" \ "ttcn3-mgw-test" Let docker_images_require build the image from osmo-mgw-master/Dockerfile (-centos8 is cut off from the dirname) and with DISTRO=centos8 as argument. Collisions with the debian-stretch images are avoided by setting IMAGE to the full image name (e.g. osmo-mgw-master-centos8). Related: OS#4564 Change-Id: I598a262fe1a7ed4dd89e13c53e4ded103c6e3b91
2020-05-30docker_images_require: build depends tooOliver Smith1-0/+14
Add a function to automatically resolve the most common dependencies, osmo-* need debian-stretch-build and ttcn3-* need debian-stretch-titan. Do this in a shell function in jenkins-common.sh, so we can extend it in the next patch with distribution specific dependencies (osmo-*-centos8 needs centos8-build). Related: OS#4564 Change-Id: I98760c6dc3206529c0e267338c9f6f8e1d5be33a
2020-05-30docker_images_require: scope of i: localOliver Smith1-0/+1
Prepare to call docker_images_require from itself, make i a local variable. Change-Id: I228f54f3e7431dba9e8d2a5fab0ecba3d0e6d76b
2019-07-05clean up the net and attached containers to ensure reliable test startsEric Wild1-0/+10
We can't create the net if it exists, and it can't be removed until all attached containers are dead, so ensure this is the case upon net creation. This fixes test failures due to stale nets and half-killed test runs. Change-Id: Id6d13b233ebfd808d8dfe83b6d1d1ba20c3392c8
2019-06-13jenkins-common.sh: Don't rebuild debian-stretch-build during fix_permsHarald Welte1-1/+4
When fixing the permissions at the end of a test run, it really doesn't matter if we're running a current debian-stretch-build image, or if we are using an ancient one. All we need is a 'chmod' binary. Change-Id: Ib008ee72f40aeefb307c0ba74a57b70daae9d07b Related: OS#4060
2019-04-02jenkins-common.sh: pull upstream base imagesOliver Smith1-1/+11
Prevent building docker images on top of outdated Debian images, where the package download feeds have been disabled. Use 'docker build --pull' instead of 'docker build', whenever the "FROM" line in the Dockerfile does not contain '$USER' (meaning this is an upstream image). Checking the FROM line is necessary, as downloading '$USER' images will fail (we never upload those). Related: OS#3869 Change-Id: I1076bbb7d77bdc99f5d60d641c09ce965fb9dfc6
2019-03-30Switch all osmo-*-master and ttcn3-*-test from jessie to stretchHarald Welte1-2/+2
Jessie will be EOL in June 2019, let's make the switch to stretch before that. Change-Id: I37a534d07081f3d321869c86d49d03171c8da0c6
2019-02-22Fix permissions when collecting logsDaniel Willmann1-0/+11
Use the debian-jessie-build container to ensure all files under ${VOL_BASE_DIR} are readable. Call this directly from collect_logs so we handle all ttcn3 jobs. Fixes: OS#3800 Change-Id: I124c554eee69ec5586547d3c96b8ec571e0653a7
2019-01-25jenkins-common.sh: exit if image fails to buildOliver Smith1-2/+2
docker_images_require() must fail when a new image can not be built, even if an old image already exists. We have this situation in a lot of the -latest tests right now, which makes it harder to find the actual error. Note that we can't simply use #!/bin/sh -e in all the jenkins.sh scripts that source jenkins_common.sh, because they must be able to clean up the docker containers on failure. So they can't abort somewhere in the middle of the scripts. We could rewrite them to do the clean up in a trap, but this should be done in a separate commit. Related: OS#3767 Change-Id: I7039089457b62b8798a79c5efd62bd91622986d3
2018-10-26jenkins-common.sh: add docker_images_require()Oliver Smith1-0/+19
This new function can be used on top of each *-test/jenkins.sh to automatically build the required Docker images before starting a testsuite. The top-level Makefile should also be able to build all Docker images on which a job depends. But in that Makefile the list of dependencies can not be specified dynamically, as it will be necessary for OS#3268: ttcn3-mgw-test may depend on osmo-mgw-latest or on osmo-mgw-master. This will be used by Idbb708ab16cb71bab5069127945b63388222369e. Related: OS#3268 Change-Id: I0afdf3400282634fca9b31d57eaeedd6b5c28aa1
2018-05-02jenkins.sh: stay in the jenkins workspace, not in /tmpNeels Hofmeyr1-9/+12
On jenkins, place all logs and manage docker volumes in the workspace instead of a /tmp/* dir. Use $WORKSPACE/logs as docker volume base to begin with, thus there needs to be no copy from /tmp to $WORKSPACE/logs. On non-jenkins runs, place all in a /tmp/* dir still, but also skip copying of the logs: just have a /tmp/logs symlink to the last tmpdir. Change-Id: I8cf6014725ae8ba602be5f3ec31dfb8e49ff993e
2018-04-24jenkins.sh: have one common function to collect logsNeels Hofmeyr1-1/+4
To remove code dup and prepare a change to where logs are written, add collect_logs() to jenkins_common.sh and call that from each jenkins.sh after the tests are done. The 'rm -rf' is already done before a test starts. No need to do that again after each test. Change-Id: I5d8472ec36b07c828685b1bd7718e31392d168a3
2018-04-24jenkins.sh: drop obsolete VOL_SUITE_DIRNeels Hofmeyr1-2/+0
Subdirs' jenkins.sh scripts create their own subdirs without exception. Change-Id: Iaf428cde0f4d3efbdb31d7af434aa82425c1bc5f
2018-02-06jenkins: Add shared jenkins-common.shHarald Welte1-0/+41
the common script contains some copy+pasted parts between the different jobs.