forked from srvrco/getssl
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun-test.sh
executable file
·82 lines (75 loc) · 2.12 KB
/
run-test.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#! /usr/bin/env bash
if [ $# -eq 0 ]; then
echo "Usage: $(basename "$0") <os> [<command>]"
echo "e.g. $(basename "$0") alpine bats /getssl/test"
exit 1
fi
OS=$1
if [ $# -gt 1 ]; then
shift
COMMAND=$*
else
COMMAND="bats /getssl/test --timing"
fi
REPO=""
if [ -n "$GITHUB_REPOSITORY" ] ; then
REPO="$(echo "$GITHUB_REPOSITORY" | cut -d/ -f1)"
if [[ "$REPO" == "srvrco" ]] ; then
REPO=""
else
REPO="${REPO}-"
fi
fi
ALIAS="$OS.getssl.test"
GETSSL_IDN_HOST="$OS.xn--t-r1a81lydm69gz81r.test"
STAGING=""
GETSSL_OS=$OS
if [[ "$OS" == *"duckdns"* ]]; then
ALIAS="${REPO}${OS%-duckdns}-getssl.duckdns.org"
STAGING="--env STAGING=true --env dynamic_dns=duckdns"
GETSSL_OS="${OS%-duckdns}"
elif [[ "$OS" == *"dynu"* ]]; then
ALIAS="${REPO}${OS%-dynu}-getssl.freeddns.org"
STAGING="--env STAGING=true --env dynamic_dns=dynu"
GETSSL_OS="${OS%-dynu}"
elif [[ "$OS" == *"acmedns"* ]]; then
ALIAS="${REPO}${OS}-getssl.freeddns.org"
STAGING="--env STAGING=true --env dynamic_dns=acmedns"
GETSSL_OS="${OS%-acmedns}"
elif [[ "$OS" == "bash"* ]]; then
GETSSL_OS="alpine"
fi
if tty -s; then
INT="-it"
else
INT=""
fi
docker build --rm -f "test/Dockerfile-$OS" -t "getssl-$OS" .
# shellcheck disable=SC2086
docker run $INT\
--env GETSSL_HOST=$ALIAS $STAGING \
--env GETSSL_IDN_HOST=$GETSSL_IDN_HOST \
--env GETSSL_OS=$GETSSL_OS \
--env GITHUB_REPOSITORY="${GITHUB_REPOSITORY}" \
--env DUCKDNS_TOKEN="${DUCKDNS_TOKEN}" \
--env DYNU_API_KEY="${DYNU_API_KEY}" \
-v "$(pwd)":/getssl \
--rm \
--network ${PWD##*/}_acmenet \
--network-alias $ALIAS \
--network-alias $GETSSL_IDN_HOST \
--network-alias "a.$OS.getssl.test" \
--network-alias "b.$OS.getssl.test" \
--network-alias "c.$OS.getssl.test" \
--network-alias "d.$OS.getssl.test" \
--network-alias "e.$OS.getssl.test" \
--network-alias "f.$OS.getssl.test" \
--network-alias "g.$OS.getssl.test" \
--network-alias "h.$OS.getssl.test" \
--network-alias "i.$OS.getssl.test" \
--network-alias "j.$OS.getssl.test" \
--network-alias "k.$OS.getssl.test" \
--network-alias "wild-$OS.getssl.test" \
--name "getssl-$OS" \
"getssl-$OS" \
$COMMAND