update installation
This commit is contained in:
Executable
+85
@@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -Eeuo pipefail
|
||||
|
||||
TEST_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd -P)"
|
||||
test_dir="$(mktemp -d)"
|
||||
trap 'rm -rf "$test_dir"' EXIT
|
||||
deployment="${test_dir}/deployment"
|
||||
mock_bin="${test_dir}/bin"
|
||||
mkdir -p "$deployment" "$mock_bin"
|
||||
cp -R \
|
||||
"${TEST_ROOT}/install.sh" \
|
||||
"${TEST_ROOT}/manage.sh" \
|
||||
"${TEST_ROOT}/compose.yaml" \
|
||||
"${TEST_ROOT}/compose.http.yaml" \
|
||||
"${TEST_ROOT}/compose.tls.yaml" \
|
||||
"${TEST_ROOT}/compose.direct.yaml" \
|
||||
"${TEST_ROOT}/deploy" \
|
||||
"$deployment/"
|
||||
|
||||
cat >"${mock_bin}/docker" <<'MOCK'
|
||||
#!/usr/bin/env bash
|
||||
printf '%s\n' "$*" >>"$MOCK_DOCKER_LOG"
|
||||
case "$*" in
|
||||
"compose version" | "info" | "network inspect tapm-edge")
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
MOCK
|
||||
chmod +x "${mock_bin}/docker"
|
||||
export MOCK_DOCKER_LOG="${test_dir}/docker.log"
|
||||
export PATH="${mock_bin}:${PATH}"
|
||||
|
||||
printf '%s\n' \
|
||||
'broker.test' \
|
||||
'git.test' \
|
||||
'8780' \
|
||||
'8743' \
|
||||
'' |
|
||||
"${deployment}/install.sh" >/dev/null
|
||||
|
||||
assert_env() {
|
||||
local expected="$1"
|
||||
grep -Fx "$expected" "${deployment}/.env" >/dev/null || {
|
||||
printf 'FAIL: missing environment line: %s\n' "$expected" >&2
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
assert_env 'SSL_MODE=none'
|
||||
assert_env 'TAPM_PUBLIC_URL=http://broker.test:8780'
|
||||
assert_env 'TAPM_GITEA_URL=http://git.test:8780'
|
||||
assert_env 'GITEA_PUBLIC_URL=http://git.test:8780/'
|
||||
grep -F -- '-f compose.yaml -f compose.http.yaml up -d gitea nginx' \
|
||||
"$MOCK_DOCKER_LOG" >/dev/null || {
|
||||
printf 'FAIL: HTTP bootstrap did not select compose.http.yaml\n' >&2
|
||||
exit 1
|
||||
}
|
||||
if stat -c '%a' "${deployment}/.env" >/dev/null 2>&1; then
|
||||
env_mode="$(stat -c '%a' "${deployment}/.env")"
|
||||
else
|
||||
env_mode="$(stat -f '%Lp' "${deployment}/.env")"
|
||||
fi
|
||||
[[ "$env_mode" == 600 ]] || {
|
||||
printf 'FAIL: .env mode is %s, want 600\n' "$env_mode" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
if "${deployment}/manage.sh" start >/dev/null 2>&1; then
|
||||
printf 'FAIL: broker started without Gitea credentials\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf '%s\n' 'admin@example.test' |
|
||||
"${deployment}/manage.sh" set-ssl letsencrypt >/dev/null
|
||||
assert_env 'SSL_MODE=letsencrypt'
|
||||
assert_env 'TAPM_PUBLIC_URL=https://broker.test'
|
||||
assert_env 'GITEA_PUBLIC_URL=https://git.test/'
|
||||
|
||||
"${deployment}/manage.sh" set-ssl none >/dev/null
|
||||
assert_env 'SSL_MODE=none'
|
||||
assert_env 'TAPM_PUBLIC_URL=http://broker.test:8780'
|
||||
|
||||
printf 'PASS: guided HTTP deployment and TLS transition\n'
|
||||
Reference in New Issue
Block a user