aboutsummaryrefslogtreecommitdiffstats
path: root/debian-repo-install-test
diff options
context:
space:
mode:
Diffstat (limited to 'debian-repo-install-test')
-rw-r--r--debian-repo-install-test/Dockerfile12
-rw-r--r--debian-repo-install-test/Makefile1
-rw-r--r--debian-repo-install-test/Release.key (renamed from debian-repo-install-test/testdata/Release.key)0
-rwxr-xr-xdebian-repo-install-test/jenkins.sh44
-rwxr-xr-xdebian-repo-install-test/testdata/repo-install-test.sh21
5 files changed, 50 insertions, 28 deletions
diff --git a/debian-repo-install-test/Dockerfile b/debian-repo-install-test/Dockerfile
new file mode 100644
index 0000000..5448fd6
--- /dev/null
+++ b/debian-repo-install-test/Dockerfile
@@ -0,0 +1,12 @@
+ARG USER
+FROM debian:stretch
+
+COPY Release.key /tmp/Release.key
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ aptitude \
+ gnupg \
+ systemd && \
+ apt-key add /tmp/Release.key && \
+ rm /tmp/Release.key
diff --git a/debian-repo-install-test/Makefile b/debian-repo-install-test/Makefile
new file mode 100644
index 0000000..8d0e10b
--- /dev/null
+++ b/debian-repo-install-test/Makefile
@@ -0,0 +1 @@
+include ../make/Makefile
diff --git a/debian-repo-install-test/testdata/Release.key b/debian-repo-install-test/Release.key
index e656238..e656238 100644
--- a/debian-repo-install-test/testdata/Release.key
+++ b/debian-repo-install-test/Release.key
diff --git a/debian-repo-install-test/jenkins.sh b/debian-repo-install-test/jenkins.sh
index 9dd4565..db71bc6 100755
--- a/debian-repo-install-test/jenkins.sh
+++ b/debian-repo-install-test/jenkins.sh
@@ -1,18 +1,48 @@
#!/bin/sh
. ../jenkins-common.sh
+docker_images_require "debian-repo-install-test"
-# Configuration
[ -z "$FEED" ] && FEED="nightly"
-interactive="false"
+
+# 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 "$BUILD_TAG" systemctl status; then
+ return
+ fi
+ done
+
+ echo "ERROR: systemd is not running properly."
+ docker container kill "$BUILD_TAG"
+ exit 1
+}
# Run the container
-extra_args=""
-[ "$interactive" = "true" ] && extra_args="-it"
+# Note that this does not output anything. For debugging, add -it and remove &.
docker run --rm \
-v "$PWD/testdata:/testdata:ro" \
-v "$VOL_BASE_DIR:/data" \
--name "${BUILD_TAG}" \
-e FEED="$FEED" \
- $extra_args \
- debian:stretch \
- "/testdata/repo-install-test.sh"
+ -e container=docker \
+ --tmpfs /run \
+ --tmpfs /tmp \
+ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
+ --cap-add SYS_ADMIN \
+ "$REPO_USER/debian-repo-install-test" \
+ /lib/systemd/systemd &
+check_if_systemd_is_running
+
+# Run the test script
+docker exec "$BUILD_TAG" /testdata/repo-install-test.sh
+ret="$?"
+
+# Interactive shell
+if [ -n "$INTERACTIVE" ]; then
+ docker exec -it "$BUILD_TAG" bash
+fi
+
+docker container kill "$BUILD_TAG"
+
+exit $ret
diff --git a/debian-repo-install-test/testdata/repo-install-test.sh b/debian-repo-install-test/testdata/repo-install-test.sh
index f45908b..38a982f 100755
--- a/debian-repo-install-test/testdata/repo-install-test.sh
+++ b/debian-repo-install-test/testdata/repo-install-test.sh
@@ -12,15 +12,8 @@ check_env() {
fi
}
-install_depends() {
- echo "Installing dependencies"
- apt-get update
- apt-get install -y gnupg aptitude
-}
-
configure_osmocom_repo() {
echo "Configuring Osmocom repository"
- apt-key add /testdata/Release.key
echo "deb $HTTP ./" \
> /etc/apt/sources.list.d/osmocom-latest.list
apt-get update
@@ -87,21 +80,7 @@ test_binaries() {
osmo-trx-usrp1
}
-finish() {
- echo "Test finished successfully!"
-
- # When docker-run is called with "-it", then stdin and a tty are available.
- # The container will still exit when the entrypoint script (this file) is
- # through, so in order to be able to type in commands, we execute a bash shell.
- if [ -t 0 ]; then
- echo "Dropping to interactive shell"
- bash
- fi
-}
-
check_env
-install_depends
configure_osmocom_repo
install_repo_packages
test_binaries
-finish