master
sh 44 lines 1.33 KB
Raw
1 #!/usr/bin/env bash
2 set -euo pipefail
3
4 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5 # shellcheck disable=SC1091
6 . "$SCRIPT_DIR/lib.sh"
7
8 init_workspace "couchbase"
9 trap cleanup EXIT
10
11 COUCHBASE_HTTP_PORT="$(reserve_port)"
12 COUCHBASE_QUERY_PORT="$(reserve_port)"
13 write_env "COUCHBASE_HTTP_PORT" "$COUCHBASE_HTTP_PORT"
14 write_env "COUCHBASE_QUERY_PORT" "$COUCHBASE_QUERY_PORT"
15 replace_in_file "$WORKDIR/config/go.d/couchbase.conf" "127.0.0.1:8091" "127.0.0.1:${COUCHBASE_HTTP_PORT}"
16 replace_in_file "$WORKDIR/config/go.d/couchbase.conf" "127.0.0.1:8093" "127.0.0.1:${COUCHBASE_QUERY_PORT}"
17
18 compose_up couchbase
19 wait_healthy couchbase 180
20 compose_run couchbase-init
21
22 wait_query_service() {
23 local attempt
24 for attempt in $(seq 1 60); do
25 : "$attempt" # loop counter
26 if curl -fsS -u "Administrator:password" "http://127.0.0.1:${COUCHBASE_QUERY_PORT}/query/service" \
27 --data-urlencode "statement=SELECT 1" > /dev/null; then
28 return 0
29 fi
30 sleep 2
31 done
32 echo "Couchbase query service not ready on host port ${COUCHBASE_QUERY_PORT}" >&2
33 return 1
34 }
35
36 wait_query_service
37 curl -fsS -u "Administrator:password" "http://127.0.0.1:${COUCHBASE_QUERY_PORT}/query/service" \
38 --data-urlencode "statement=SELECT 1" > /dev/null
39
40 build_plugin
41 run_info couchbase
42 run_top_queries couchbase
43
44 echo "E2E checks passed for couchbase." >&2