Browse code

add test script for built debs

Signed-off-by: Jessica Frazelle <acidburn@docker.com>

Jessica Frazelle authored on 2015/10/16 03:55:17
Showing 2 changed files
1 1
new file mode 100755
... ...
@@ -0,0 +1,57 @@
0
+#!/bin/bash
1
+# This script is used for testing install.sh and that it works for
2
+# each of component of our apt and yum repos
3
+set -e
4
+
5
+: ${DEB_DIR:="$(pwd)/bundles/$(cat VERSION)/build-deb"}
6
+
7
+if [[ ! -d "${DEB_DIR}" ]]; then
8
+	echo "you must first run `make deb` or hack/make/build-deb"
9
+	exit 1
10
+fi
11
+
12
+test_deb_install(){
13
+	# test for each Dockerfile in contrib/builder
14
+	for dir in contrib/builder/deb/*/; do
15
+		local from="$(awk 'toupper($1) == "FROM" { print $2; exit }' "$dir/Dockerfile")"
16
+		local dir=$(basename "$dir")
17
+
18
+		if [[ ! -d "${DEB_DIR}/${dir}" ]]; then
19
+			echo "No deb found for ${dir}"
20
+			exit 1
21
+		fi
22
+
23
+		local script=$(mktemp /tmp/install-XXXXXXXXXX.sh)
24
+		cat <<-EOF > "${script}"
25
+		#!/bin/bash
26
+		set -e
27
+		set -x
28
+
29
+		apt-get update && apt-get install -y apparmor
30
+
31
+		dpkg -i /root/debs/*.deb || true
32
+
33
+		apt-get install -yf
34
+
35
+		/etc/init.d/apparmor start
36
+
37
+		# this will do everything _except_ load the profile into the kernel
38
+		(
39
+		cd /etc/apparmor.d
40
+		/sbin/apparmor_parser --skip-kernel-load docker-engine
41
+		)
42
+		EOF
43
+
44
+		chmod +x "${script}"
45
+
46
+		echo "testing deb install for ${from}"
47
+		docker run --rm -i --privileged \
48
+			-v ${DEB_DIR}/${dir}:/root/debs \
49
+			-v ${script}:/install.sh \
50
+			${from} /install.sh
51
+
52
+		rm -f ${script}
53
+	done
54
+}
55
+
56
+test_deb_install
... ...
@@ -23,6 +23,8 @@ test_install_script(){
23 23
 			echo "running install.sh for ${component} with ${from}"
24 24
 			docker run --rm -i -v ${script}:/install.sh ${from} /install.sh
25 25
 		done
26
+
27
+		rm -f ${script}
26 28
 	done
27 29
 }
28 30