Add extra verification to Docker builds. (#11497)
Austin S. Hemmelgarn committed
Sep 15, 2021 at 07:32 UTC
2584ebc2a9515efea3f816f9b45bde0390d30dbb
2 files changed
+66
.github/scripts/docker-test.sh
new
+58
@@ -0,0 +1,58 @@
1
+#!/bin/sh
2
+
3
+export DEBIAN_FRONTEND=noninteractive
4
+
5
+wait_for() {
6
+ host="${1}"
7
+ port="${2}"
8
+ name="${3}"
9
+ timeout="30"
10
+
11
+ if command -v nc > /dev/null ; then
12
+ netcat="nc"
13
+ elif command -v netcat > /dev/null ; then
14
+ netcat="netcat"
15
+ else
16
+ printf "Unable to find a usable netcat command.\n"
17
+ return 1
18
+ fi
19
+
20
+ printf "Waiting for %s on %s:%s ... " "${name}" "${host}" "${port}"
21
+
22
+ sleep 30
23
+
24
+ i=0
25
+ while ! ${netcat} -z "${host}" "${port}"; do
26
+ sleep 1
27
+ if [ "$i" -gt "$timeout" ]; then
28
+ printf "Timed out!\n"
29
+ return 1
30
+ fi
31
+ i="$((i + 1))"
32
+ done
33
+ printf "OK\n"
34
+}
35
+
36
+apt-get update && apt-get upgrade -y && apt get install -y netcat
37
+
38
+docker run -d --name=netdata \
39
+ -p 19999:19999 \
40
+ -v netdataconfig:/etc/netdata \
41
+ -v netdatalib:/var/lib/netdata \
42
+ -v netdatacache:/var/cache/netdata \
43
+ -v /etc/passwd:/host/etc/passwd:ro \
44
+ -v /etc/group:/host/etc/group:ro \
45
+ -v /proc:/host/proc:ro \
46
+ -v /sys:/host/sys:ro \
47
+ -v /etc/os-release:/host/etc/os-release:ro \
48
+ --cap-add SYS_PTRACE \
49
+ --security-opt apparmor=unconfined \
50
+ netdata/netdata:test
51
+
52
+wait_for localhost 19999 netdata || exit 1
53
+
54
+curl -sS http://127.0.0.1:19999/api/v1/info > ./response || exit 1
55
+
56
+cat ./response
57
+
58
+jq '.version' ./response || exit 1
.github/workflows/docker.yml
+8
@@ -47,6 +47,14 @@ jobs:
47
with:
48
username: ${{ secrets.DOCKER_HUB_USERNAME }}
49
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
50
+ - name: Test Build
51
+ uses: docker/build-push-action@v2
52
+ with:
53
+ load: true
54
+ push: false
55
+ tags: netdata/netdata:test
56
+ - name: Test Image
57
+ run: .github/scripts/docker-test.sh
58
- name: Docker Build
59
uses: docker/build-push-action@v2
60
with: