debian-repo-install-test: move scripts to osmo-ci
Related: OS#4563 Depends: I777098f19d75f7efbd68b837ccdcd83309429c39 (osmo-ci) Change-Id: If93f37e8d46597a9abc67a4529be9addd65780f5
This commit is contained in:
parent
f8d5ed55f1
commit
9d7b8fd5f9
|
@ -1,58 +0,0 @@
|
|||
#!/bin/sh
|
||||
. ../jenkins-common.sh
|
||||
docker_images_require "debian-repo-install-test"
|
||||
|
||||
[ -z "$FEED" ] && FEED="nightly"
|
||||
CONTAINER="repo-install-test-$FEED"
|
||||
|
||||
# Try to run "systemctl status" 10 times, kill the container on failure
|
||||
check_if_systemd_is_running() {
|
||||
for i in $(seq 1 10); do
|
||||
sleep 1
|
||||
if docker exec "$CONTAINER" systemctl status; then
|
||||
return
|
||||
fi
|
||||
done
|
||||
|
||||
echo "ERROR: systemd is not running properly."
|
||||
docker container kill "$CONTAINER"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Kill already running container
|
||||
if [ "$(docker inspect -f '{{.State.Running}}' "$CONTAINER" 2> /dev/null)" = "true" ]; then
|
||||
docker container kill "$CONTAINER"
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
# Run the container
|
||||
# * This does not output anything, for debugging add -it and remove &.
|
||||
# * /run, /tmp, cgroups, SYS_ADMIN: needed for systemd
|
||||
# * SYS_NICE: needed for changing CPUScheduling{Policy,Priority} (osmo-bts systemd service files)
|
||||
docker run --rm \
|
||||
-v "$PWD/testdata:/testdata:ro" \
|
||||
-v "$VOL_BASE_DIR:/data" \
|
||||
--name "$CONTAINER" \
|
||||
-e FEED="$FEED" \
|
||||
-e container=docker \
|
||||
--tmpfs /run \
|
||||
--tmpfs /tmp \
|
||||
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
|
||||
--cap-add SYS_ADMIN \
|
||||
--cap-add SYS_NICE \
|
||||
"$REPO_USER/debian-repo-install-test" \
|
||||
/lib/systemd/systemd &
|
||||
check_if_systemd_is_running
|
||||
|
||||
# Run the test script
|
||||
docker exec "$CONTAINER" /testdata/repo-install-test.sh
|
||||
ret="$?"
|
||||
|
||||
# Interactive shell
|
||||
if [ -n "$INTERACTIVE" ]; then
|
||||
docker exec -it "$CONTAINER" bash
|
||||
fi
|
||||
|
||||
docker container kill "$CONTAINER"
|
||||
|
||||
exit $ret
|
|
@ -1,27 +0,0 @@
|
|||
# These packages will not get explicitly installed in this test.
|
||||
# Package lines must have nothing but the package (no comment,
|
||||
# no additional space etc).
|
||||
|
||||
# OpenBSC
|
||||
# This is legacy, we aren't really interested in testing openbsc.git
|
||||
# derived packages. Packages are found in openbsc/debian/control.
|
||||
openbsc-dev
|
||||
osmo-bsc-mgcp
|
||||
osmo-bsc-mgcp-dbg
|
||||
osmocom-bs11-utils
|
||||
osmocom-bs11-utils-dbg
|
||||
osmocom-bsc-nat
|
||||
osmocom-bsc-nat-dbg
|
||||
osmocom-bsc-sccplite
|
||||
osmocom-bsc-sccplite-dbg
|
||||
osmocom-ipaccess-utils
|
||||
osmocom-ipaccess-utils-dbg
|
||||
osmocom-nitb
|
||||
osmocom-nitb-dbg
|
||||
|
||||
# SoapySDR is not used anymore (see OS#3542)
|
||||
soapysdr-module-lms7
|
||||
soapysdr0.6-module-lms7
|
||||
soapysdr0.6-module-lms7-dbgsym
|
||||
soapysdr0.7-module-lms7
|
||||
soapysdr0.7-module-lms7-dbgsym
|
|
@ -1,146 +0,0 @@
|
|||
#!/bin/sh -ex
|
||||
|
||||
# Systemd services that must start up successfully after installing all packages (OS#3369)
|
||||
# Disabled services:
|
||||
# * osmo-ctrl2cgi (missing config: /etc/osmocom/ctrl2cgi.ini, OS#4108)
|
||||
# * osmo-trap2cgi (missing config: /etc/osmocom/%N.ini, OS#4108)
|
||||
# * osmo-ggsn (no tun device in docker)
|
||||
SERVICES="
|
||||
osmo-bsc
|
||||
osmo-gbproxy
|
||||
osmo-gtphub
|
||||
osmo-hlr
|
||||
osmo-mgw
|
||||
osmo-msc
|
||||
osmo-pcap-client
|
||||
osmo-sip-connector
|
||||
osmo-stp
|
||||
"
|
||||
# Services working in nightly, but not yet in latest
|
||||
# * osmo-pcap-server: service not included in osmo-pcap 0.0.11
|
||||
# * osmo-sgsn: conflicts with osmo-gtphub config in osmo-sgsn 1.4.0
|
||||
# * osmo-pcu: needs osmo-bts-virtual to start up properly
|
||||
# * osmo-hnbgw: tries to listen on 10.23.24.1 in osmo-iuh 0.4.0
|
||||
# * osmo-bts-virtual: unit id not matching osmo-bsc's config in osmo-bsc 1.4.0
|
||||
SERVICES_NIGHTLY="
|
||||
osmo-pcap-server
|
||||
osmo-sgsn
|
||||
osmo-pcu
|
||||
osmo-hnbgw
|
||||
osmo-bts-virtual
|
||||
"
|
||||
|
||||
HTTP="http://download.opensuse.org/repositories/network:/osmocom:/$FEED/Debian_9.0/"
|
||||
OBS="obs://build.opensuse.org/network:osmocom:$FEED/Debian_9.0"
|
||||
|
||||
check_env() {
|
||||
if [ -n "$FEED" ]; then
|
||||
echo "Checking feed: $FEED"
|
||||
else
|
||||
echo "ERROR: missing environment variable \$FEED!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
configure_osmocom_repo() {
|
||||
echo "Configuring Osmocom repository"
|
||||
echo "deb $HTTP ./" \
|
||||
> /etc/apt/sources.list.d/osmocom-latest.list
|
||||
apt-get update
|
||||
}
|
||||
|
||||
install_repo_packages() {
|
||||
echo "Installing all repository packages"
|
||||
|
||||
# Get a list of all packages from the repository. Reference:
|
||||
# https://www.debian.org/doc/manuals/aptitude/ch02s04s05.en.html
|
||||
aptitude search -F%p \
|
||||
"?origin($OBS) ?architecture(native)" | sort \
|
||||
> /data/osmocom_packages_all.txt
|
||||
|
||||
# Remove comments from blacklist.txt (and sort it)
|
||||
grep -v "^#" /testdata/blacklist.txt | sort -u > /data/blacklist.txt
|
||||
|
||||
# Install all repo packages which are not on the blacklist
|
||||
comm -23 /data/osmocom_packages_all.txt \
|
||||
/data/blacklist.txt > /data/osmocom_packages.txt
|
||||
apt install -y $(cat /data/osmocom_packages.txt)
|
||||
}
|
||||
|
||||
test_binaries_version() {
|
||||
# Make sure --version runs and does not output UNKNOWN
|
||||
failed=""
|
||||
for program in $@; do
|
||||
# Make sure it runs at all
|
||||
$program --version
|
||||
|
||||
# Check for UNKNOWN
|
||||
if $program --version | grep -q UNKNOWN; then
|
||||
failed="$failed $program"
|
||||
echo "ERROR: this program prints UNKNOWN in --version!"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$failed" ]; then
|
||||
echo "ERROR: the following program(s) print UNKNOWN in --version:"
|
||||
echo "$failed"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
test_binaries() {
|
||||
# Make sure that binares run at all and output a proper version
|
||||
test_binaries_version \
|
||||
osmo-bsc \
|
||||
osmo-bts-trx \
|
||||
osmo-bts-virtual \
|
||||
osmo-gbproxy \
|
||||
osmo-gtphub \
|
||||
osmo-ggsn \
|
||||
osmo-hlr \
|
||||
osmo-hlr-db-tool \
|
||||
osmo-hnbgw \
|
||||
osmo-mgw \
|
||||
osmo-msc \
|
||||
osmo-pcu \
|
||||
osmo-sgsn \
|
||||
osmo-sip-connector \
|
||||
osmo-stp \
|
||||
osmo-trx-uhd \
|
||||
osmo-trx-usrp1
|
||||
}
|
||||
|
||||
services_check() {
|
||||
local service
|
||||
local services_feed="$SERVICES"
|
||||
local failed=""
|
||||
|
||||
if [ "$FEED" = "nightly" ]; then
|
||||
services_feed="$services_feed $SERVICES_NIGHTLY"
|
||||
fi
|
||||
|
||||
systemctl start $services_feed
|
||||
sleep 2
|
||||
|
||||
for service in $services_feed; do
|
||||
if ! systemctl --no-pager -l -n 200 status $service; then
|
||||
failed="$failed $service"
|
||||
fi
|
||||
done
|
||||
|
||||
systemctl stop $services_feed
|
||||
|
||||
if [ -n "$failed" ]; then
|
||||
set +x
|
||||
echo
|
||||
echo "ERROR: services failed to start: $failed"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_env
|
||||
configure_osmocom_repo
|
||||
install_repo_packages
|
||||
test_binaries
|
||||
services_check
|
Loading…
Reference in New Issue