Skip to content

Commit 00edc58

Browse files
committed
CI: Added a test for modules builds.
1 parent c300144 commit 00edc58

File tree

3 files changed

+106
-0
lines changed

3 files changed

+106
-0
lines changed

.test/config.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ imageTests+=(
55
templates
66
templates-resolver
77
workers
8+
modules
89
'
910
)

.test/tests/modules/nginx.conf.sme

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
user nginx;
2+
worker_processes auto;
3+
4+
load_module modules/ndk_http_module.so;
5+
load_module modules/ngx_http_echo_module.so;
6+
load_module modules/ngx_http_set_misc_module.so;
7+
8+
error_log /var/log/nginx/error.log notice;
9+
pid /var/run/nginx.pid;
10+
11+
events {
12+
worker_connections 1024;
13+
}
14+
15+
http {
16+
include /etc/nginx/mime.types;
17+
default_type application/octet-stream;
18+
19+
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
20+
'$status $body_bytes_sent "$http_referer" '
21+
'"$http_user_agent" "$http_x_forwarded_for"';
22+
23+
access_log /var/log/nginx/access.log main;
24+
25+
server {
26+
listen 80 default_server;
27+
location /hello {
28+
set $raw "hello";
29+
set_sha1 $digest $raw;
30+
31+
echo $digest;
32+
}
33+
}
34+
}

.test/tests/modules/run.sh

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#!/bin/bash
2+
3+
set -eo pipefail
4+
5+
dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
6+
7+
echo $dir
8+
9+
image="$1"
10+
11+
case "$image" in
12+
*-perl)
13+
;;
14+
*)
15+
echo >&2 "skipping non-leaf image: $image"
16+
exit
17+
;;
18+
esac
19+
20+
dockerfile="Dockerfile"
21+
case "$image" in
22+
*alpine*)
23+
dockerfile="$dockerfile.alpine"
24+
;;
25+
esac
26+
27+
clientImage='buildpack-deps:buster-curl'
28+
# ensure the clientImage is ready and available
29+
if ! docker image inspect "$clientImage" &> /dev/null; then
30+
docker pull "$clientImage" > /dev/null
31+
fi
32+
33+
# Create an instance of the container-under-test
34+
modulesImage="$("$HOME/oi/test/tests/image-name.sh" librarytest/nginx-template "$image")"
35+
DOCKER_BUILDKIT=0 docker build --build-arg NGINX_FROM_IMAGE="$image" --build-arg ENABLED_MODULES="ndk set-misc echo" -t "$modulesImage" -f "modules/$dockerfile" "$GITHUB_WORKSPACE/modules"
36+
37+
serverImage="${modulesImage}-sme"
38+
"$HOME/oi/test/tests/docker-build.sh" "$dir" "$serverImage" <<EOD
39+
FROM $modulesImage
40+
COPY dir/nginx.conf.sme /etc/nginx/nginx.conf
41+
EOD
42+
43+
cid="$(docker run -d "$serverImage")"
44+
trap "docker rm -vf $cid > /dev/null" EXIT
45+
46+
_request() {
47+
local method="$1"
48+
shift
49+
50+
local proto="$1"
51+
shift
52+
53+
local url="${1#/}"
54+
shift
55+
56+
if [ "$(docker inspect -f '{{.State.Running}}' "$cid" 2>/dev/null)" != 'true' ]; then
57+
echo >&2 "$image stopped unexpectedly!"
58+
( set -x && docker logs "$cid" ) >&2 || true
59+
false
60+
fi
61+
62+
docker run --rm \
63+
--link "$cid":nginx \
64+
"$clientImage" \
65+
curl -fsSL -X"$method" --connect-to '::nginx:' "$@" "$proto://example.com/$url"
66+
}
67+
68+
. "$HOME/oi/test/retry.sh" '[ "$(_request GET / --output /dev/null || echo $?)" != 7 ]'
69+
70+
# Check that we can request /
71+
_request GET http '/hello' | grep 'aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d'

0 commit comments

Comments
 (0)