Change in ...docker-playground[master]: debian-repo-install-test: add docker container

osmith gerrit-no-reply at lists.osmocom.org
Mon Jul 15 12:33:27 UTC 2019


osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/docker-playground/+/14779


Change subject: debian-repo-install-test: add docker container
......................................................................

debian-repo-install-test: add docker container

Add own container with systemd, so we can (in a follow-up commit) run
the Osmocom systemd services in this test job. Rewrite the
"interactive shell" logic to support the new systemd docker container,
and enable it with an INTERACTIVE environment variable instead of
hardcoding 'interactive="true"' in the script. While at it, move the
Repository.key install to the Dockerfile so it works more like the other
docker containers we have.

Related: OS#3369
Change-Id: I0348f65a2ac184ba6b001e5130dfc8124e657367
---
A debian-repo-install-test/Dockerfile
A debian-repo-install-test/Makefile
R debian-repo-install-test/Release.key
M debian-repo-install-test/jenkins.sh
M debian-repo-install-test/testdata/repo-install-test.sh
5 files changed, 43 insertions(+), 28 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/79/14779/1

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
similarity index 100%
rename from debian-repo-install-test/testdata/Release.key
rename to debian-repo-install-test/Release.key
diff --git a/debian-repo-install-test/jenkins.sh b/debian-repo-install-test/jenkins.sh
index 9dd4565..865ba22 100755
--- a/debian-repo-install-test/jenkins.sh
+++ b/debian-repo-install-test/jenkins.sh
@@ -1,18 +1,41 @@
 #!/bin/sh
 . ../jenkins-common.sh
+docker_images_require "debian-repo-install-test"
 
-# Configuration
 [ -z "$FEED" ] && FEED="nightly"
-interactive="false"
 
 # 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-stretch-systemd" \
+		/lib/systemd/systemd &
+sleep 1
+
+# Check if systemd is running
+if ! docker exec "$BUILD_TAG" systemctl status; then
+	echo "ERROR: systemd is not running properly."
+	docker container kill "$BUILD_TAG"
+	exit 1
+fi
+
+# 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 @@
 	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 @@
 		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

-- 
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/14779
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: I0348f65a2ac184ba6b001e5130dfc8124e657367
Gerrit-Change-Number: 14779
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190715/0b7b3d58/attachment.html>


More information about the gerrit-log mailing list