-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-cake.sh
More file actions
executable file
·72 lines (72 loc) · 2.47 KB
/
test-cake.sh
File metadata and controls
executable file
·72 lines (72 loc) · 2.47 KB
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
#!/usr/bin/env bash
set -e
TOPDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
# shellcheck source=Scripts/lib/logging.sh
. "$TOPDIR/Scripts/lib/logging.sh"
migrate="--connection=test -v -u -i"
# default arg --docker, is enabled
saved=( "$@" )
config_args="-p pass -s hash --development"
db_data="db-data:/config/databases/"
usage=("" \
"${cyan}Notice:${nc}The test script." \
"Usage: $0 [--docker|--runner [--cov|--phpcs]] [-p <password>] [-t <password>] " \
" -r, --runner [path to a file with a list of variables], " \
" also disables Docker Image" \
" --docker [enabled] Start a Docker daemon and DATABASE" \
" --cov Coverage All Tests" \
" --phpcs PHP Code Sniffer" \
"" \
"Notice: Use environment variables from open container/pod" \
" and a file if it exists" \
"Default arguments: " \
" --docker" \
"")
while [[ "$#" -gt 0 ]]; do case $1 in
--runner )
# shellcheck disable=SC2086
migrate="$(parse_arg_trim --docker $migrate) --runner --testunitbase=${TEST_MYSQL_DATABASE}"
# shellcheck disable=SC2086
config_args="$(parse_arg_trim --docker $config_args) --runner"
;;
--phpcs )
export PHPCS=1
migrate=""
config_args=""
;;
--cov )
export COLLECT_COVERAGE=true
;;
-[hH]*|--help )
printf "%s\n" "${usage[@]}"
exit 0;;
-[vV]*|--verbose )
set -x
migrate="-v ${migrate}"
echo "Passed params : $0 ${saved[*]}"
;;
--travis)
export MYSQL_HOST=${MYSQL_HOST:-'127.0.0.1'}
export MYSQL_USER='travis'
export MYSQL_PASSWORD=''
export MYSQL_ROOT_PASSWORD=''
# shellcheck disable=SC2086
migrate="$(parse_arg_trim --docker $migrate) --travis"
# shellcheck disable=SC2086
config_args="$(parse_arg_trim --docker $config_args) --travis"
;;
--docker )
config_args="--docker ${config_args}"
migrate="--docker ${migrate}"
db_data="$(pwd)/mysqld$(echo ${db_data} | cut -d : -f 2)"
;;
*) echo "Unknown parameter, passed $0: $1"; exit 1;;
esac; shift; done
# shellcheck source=configure.sh
bash -c "${TOPDIR}/configure.sh $config_args"
if bash -c "${TOPDIR}/migrate-database.sh ${migrate}"; then
printf "[SUCCESS] CakePHP Test Suite successfully finished, go on with the job...\n"
else
printf "[FAILED] CakePHP Test Suite had errors. Quit the job thread.\n\
[INFO] Only continuous integration scripts may run tests.\n"
fi