mirror of
https://github.com/cytopia/devilbox.git
synced 2025-04-09 03:54:16 +00:00
REL-0.9 Re-enable new travis checks
This commit is contained in:
parent
6c59070afb
commit
26785ac448
422
.tests/.lib.sh
422
.tests/.lib.sh
@ -56,7 +56,7 @@ runsu() {
|
||||
printf "${_red}%s \$ ${_green}sudo ${_cmd}${_reset}\n" "${_user}"
|
||||
fi
|
||||
|
||||
eval "sudo LANG=C LC_ALL=C ${_cmd}"
|
||||
sudo "LANG=C LC_ALL=C ${_cmd}"
|
||||
}
|
||||
|
||||
|
||||
@ -113,48 +113,140 @@ wait_for() {
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
###
|
||||
### Get newline separated default data mount directories (from .env file)
|
||||
### Default enabled Docker Versions
|
||||
###
|
||||
get_data_mounts() {
|
||||
_mounts="$( grep -E '^.*_DATADIR=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
_data=""
|
||||
|
||||
IFS='
|
||||
'
|
||||
for _mount in ${_mounts}; do
|
||||
_prefix="$( echo "${_mount}" | cut -c-1 )"
|
||||
|
||||
# Relative path?
|
||||
if [ "${_prefix}" = "." ]; then
|
||||
_mount="$( echo "${_mount}" | sed 's/^\.//g' )" # Remove leading dot: .
|
||||
_mount="$( echo "${_mount}" | sed 's/^\///' )" # Remove leading slash: /
|
||||
_mount="${DEVILBOX_PATH}/${_mount}"
|
||||
fi
|
||||
|
||||
# newline Append
|
||||
if [ "${_data}" = "" ]; then
|
||||
_data="${_mount}"
|
||||
else
|
||||
_data="${_data}\n${_mount}"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "${_data}"
|
||||
get_default_version_httpd() {
|
||||
_default="$( grep -E '^HTTPD_SERVER=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
get_default_version_mysql() {
|
||||
_default="$( grep -E '^MYSQL_SERVER=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
get_default_version_postgres() {
|
||||
_default="$( grep -E '^POSTGRES_SERVER=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
get_default_version_php() {
|
||||
_default="$( grep -E '^PHP_SERVER=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
|
||||
###
|
||||
### Default enabled Host Ports
|
||||
###
|
||||
get_default_port_httpd() {
|
||||
_default="$( grep -E '^HOST_PORT_HTTPD=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
get_default_port_mysql() {
|
||||
_default="$( grep -E '^HOST_PORT_MYSQL=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
get_default_port_postgres() {
|
||||
_default="$( grep -E '^HOST_PORT_POSTGRES=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
|
||||
###
|
||||
### Default enabled Host Mounts
|
||||
###
|
||||
get_default_mount_httpd() {
|
||||
_default="$( grep -E '^HOST_PATH_TO_WWW_DOCROOTS=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
_prefix="$( echo "${_default}" | cut -c-1 )"
|
||||
|
||||
# Relative path?
|
||||
if [ "${_prefix}" = "." ]; then
|
||||
_default="$( echo "${_default}" | sed 's/^\.//g' )" # Remove leading dot: .
|
||||
_default="$( echo "${_default}" | sed 's/^\///' )" # Remove leading slash: /
|
||||
echo "${DEVILBOX_PATH}/${_default}"
|
||||
else
|
||||
echo "${_default}"
|
||||
fi
|
||||
}
|
||||
get_default_mount_mysql() {
|
||||
_default="$( grep -E '^HOST_PATH_TO_MYSQL_DATADIR=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
_prefix="$( echo "${_default}" | cut -c-1 )"
|
||||
|
||||
# Relative path?
|
||||
if [ "${_prefix}" = "." ]; then
|
||||
_default="$( echo "${_default}" | sed 's/^\.//g' )" # Remove leading dot: .
|
||||
_default="$( echo "${_default}" | sed 's/^\///' )" # Remove leading slash: /
|
||||
echo "${DEVILBOX_PATH}/${_default}"
|
||||
else
|
||||
echo "${_default}"
|
||||
fi
|
||||
}
|
||||
get_default_mount_postgres() {
|
||||
_default="$( grep -E '^HOST_PATH_TO_POSTGRES_DATADIR=' "${DEVILBOX_PATH}/env-example" | sed 's/^.*=//g' )"
|
||||
_prefix="$( echo "${_default}" | cut -c-1 )"
|
||||
|
||||
# Relative path?
|
||||
if [ "${_prefix}" = "." ]; then
|
||||
_default="$( echo "${_default}" | sed 's/^\.//g' )" # Remove leading dot: .
|
||||
_default="$( echo "${_default}" | sed 's/^\///' )" # Remove leading slash: /
|
||||
echo "${DEVILBOX_PATH}/${_default}"
|
||||
else
|
||||
echo "${_default}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# G E T E N A B L E D
|
||||
#
|
||||
################################################################################
|
||||
|
||||
###
|
||||
### Default enabled Docker Versions
|
||||
###
|
||||
get_enabled_versions() {
|
||||
grep -E '^[A-Z]+_SERVER=' "${DEVILBOX_PATH}/.env" | sed 's/_SERVER=/\t/g'
|
||||
|
||||
get_enabled_version_httpd() {
|
||||
_default="$( grep -E '^HTTPD_SERVER=' "${DEVILBOX_PATH}/.env" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
get_enabled_version_mysql() {
|
||||
_default="$( grep -E '^MYSQL_SERVER=' "${DEVILBOX_PATH}/.env" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
get_enabled_version_postgres() {
|
||||
_default="$( grep -E '^POSTGRES_SERVER=' "${DEVILBOX_PATH}/.env" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
get_enabled_version_php() {
|
||||
_default="$( grep -E '^PHP_SERVER=' "${DEVILBOX_PATH}/.env" | sed 's/^.*=//g' )"
|
||||
echo "${_default}"
|
||||
}
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# G E T A L L D O C K E R V E R S I O N S
|
||||
#
|
||||
################################################################################
|
||||
|
||||
###
|
||||
### All Docker Versions
|
||||
###
|
||||
get_all_docker_httpd() {
|
||||
_all="$( grep -E '^#?HTTPD_SERVER=' "${DEVILBOX_PATH}/env-example" | sed 's/.*=//g' )"
|
||||
echo "${_all}"
|
||||
}
|
||||
get_all_docker_mysql() {
|
||||
_all="$( grep -E '^#?MYSQL_SERVER=' "${DEVILBOX_PATH}/env-example" | sed 's/.*=//g' )"
|
||||
echo "${_all}"
|
||||
}
|
||||
get_all_docker_postgres() {
|
||||
_all="$( grep -E '^#?POSTGRES_SERVER=' "${DEVILBOX_PATH}/env-example" | sed 's/.*=//g' )"
|
||||
echo "${_all}"
|
||||
}
|
||||
get_all_docker_php() {
|
||||
_all="$( grep -E '^#?PHP_SERVER=' "${DEVILBOX_PATH}/env-example" | sed 's/.*=//g' )"
|
||||
echo "${_all}"
|
||||
}
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
@ -182,33 +274,10 @@ comment_all_dockers() {
|
||||
# Comment out all enabled docker versions
|
||||
run "sed -i'' \"s/^HTTPD_SERVER=/#HTTPD_SERVER=/g\" \"${DEVILBOX_PATH}/.env\""
|
||||
run "sed -i'' \"s/^MYSQL_SERVER=/#MYSQL_SERVER=/g\" \"${DEVILBOX_PATH}/.env\""
|
||||
run "sed -i'' \"s/^PGSQL_SERVER=/#PGSQL_SERVER=/g\" \"${DEVILBOX_PATH}/.env\""
|
||||
run "sed -i'' \"s/^POSTGRES_SERVER=/#POSTGRES_SERVER=/g\" \"${DEVILBOX_PATH}/.env\""
|
||||
run "sed -i'' \"s/^PHP_SERVER=/#PHP_SERVER=/g\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
|
||||
###
|
||||
### Enable debug mode
|
||||
###
|
||||
set_debug_enable() {
|
||||
run "sed -i'' \"s/^DEBUG_COMPOSE_ENTRYPOINT=.*/DEBUG_COMPOSE_ENTRYPOINT=1/\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
|
||||
###
|
||||
### Alter ports
|
||||
###
|
||||
set_host_port_httpd() {
|
||||
_port="${1}"
|
||||
run "sed -i'' \"s/^HOST_PORT_HTTPD=.*/HOST_PORT_HTTPD=${_port}/\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
set_host_port_mysql() {
|
||||
_port="${1}"
|
||||
run "sed -i'' \"s/^HOST_PORT_MYSQL=.*/HOST_PORT_MYSQL=${_port}/\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
set_host_port_pgsql() {
|
||||
_port="${1}"
|
||||
run "sed -i'' \"s/^HOST_PORT_PGSQL=.*/HOST_PORT_PGSQL=${_port}/\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
|
||||
###
|
||||
### Eenable desired docker version
|
||||
###
|
||||
@ -222,7 +291,7 @@ enable_docker_mysql() {
|
||||
}
|
||||
enable_docker_pgsql() {
|
||||
_docker_version="${1}"
|
||||
run "sed -i'' \"s/#PGSQL_SERVER=${_docker_version}/PGSQL_SERVER=${_docker_version}/g\" \"${DEVILBOX_PATH}/.env\""
|
||||
run "sed -i'' \"s/#POSTGRES_SERVER=${_docker_version}/POSTGRES_SERVER=${_docker_version}/g\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
enable_docker_php() {
|
||||
_docker_version="${1}"
|
||||
@ -230,52 +299,126 @@ enable_docker_php() {
|
||||
}
|
||||
|
||||
|
||||
set_host_port_httpd() {
|
||||
_port="${1}"
|
||||
run "sed -i'' \"s/^HOST_PORT_HTTPD=.*/HOST_PORT_HTTPD=${_port}/\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
set_host_port_mysql() {
|
||||
_port="${1}"
|
||||
run "sed -i'' \"s/^HOST_PORT_MYSQL=.*/HOST_PORT_MYSQL=${_port}/\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
set_host_port_pgsql() {
|
||||
_port="${1}"
|
||||
run "sed -i'' \"s/^HOST_PORT_POSTGRES=.*/HOST_PORT_POSTGRES=${_port}/\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
|
||||
|
||||
set_debug_enable() {
|
||||
run "sed -i'' \"s/^DEBUG_COMPOSE_ENTRYPOINT=.*/DEBUG_COMPOSE_ENTRYPOINT=1/\" \"${DEVILBOX_PATH}/.env\""
|
||||
}
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# S T A R T / S T O P / T E S T T H E D E V I L B O X
|
||||
# S T A R T / S T O P T H E D E V I L B O X
|
||||
#
|
||||
################################################################################
|
||||
|
||||
devilbox_start() {
|
||||
_new_httpd="$1"
|
||||
_new_mysql="$2"
|
||||
_new_pysql="$3"
|
||||
_new_php="$4"
|
||||
_new_head="$5"
|
||||
_srv1="${1}"
|
||||
_ver1="${2}"
|
||||
_srv2="${3}"
|
||||
_ver2="${4}"
|
||||
|
||||
# Default values for remaining servers
|
||||
_def_php="php-fpm-7.0"
|
||||
_def_httpd="nginx-stable"
|
||||
_def_mysql="mariadb-10.0"
|
||||
_def_pgsql="9.6"
|
||||
|
||||
# Specific enabled servers
|
||||
_set_php=""
|
||||
_set_httpd=""
|
||||
_set_mysql=""
|
||||
_set_pgsql=""
|
||||
|
||||
# Print Headline
|
||||
print_h1 "${_new_head}"
|
||||
print_h1 "${_srv1}-${_ver1} vs ${_srv2}-${_ver2}"
|
||||
|
||||
# Adjust .env
|
||||
comment_all_dockers
|
||||
enable_docker_httpd "${_new_httpd}"
|
||||
enable_docker_mysql "${_new_mysql}"
|
||||
enable_docker_pgsql "${_new_pysql}"
|
||||
enable_docker_php "${_new_php}"
|
||||
|
||||
# Enable Type 1
|
||||
if [ "${_srv1}" = "HTTPD" ]; then
|
||||
_set_httpd="${_ver1}"
|
||||
elif [ "${_srv1}" = "MYSQL" ]; then
|
||||
_set_mysql="${_ver1}"
|
||||
elif [ "${_srv1}" = "PGSQL" ]; then
|
||||
_set_pgsql="${_ver1}"
|
||||
elif [ "${_srv1}" = "PHP" ]; then
|
||||
_set_php="${_ver1}"
|
||||
else
|
||||
echo "Invalid server: ${_srv1}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Enable Type 2
|
||||
if [ "${_srv2}" = "HTTPD" ]; then
|
||||
_set_httpd="${_ver2}"
|
||||
elif [ "${_srv2}" = "MYSQL" ]; then
|
||||
_set_mysql="${_ver2}"
|
||||
elif [ "${_srv2}" = "PGSQL" ]; then
|
||||
_set_pgsql="${_ver2}"
|
||||
elif [ "${_srv2}" = "PHP" ]; then
|
||||
_set_php="${_ver2}"
|
||||
else
|
||||
echo "Invalid server: ${_srv2}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Enable remaining onces
|
||||
if [ "${_set_php}" = "" ]; then
|
||||
_set_php="${_def_php}"
|
||||
fi
|
||||
if [ "${_set_httpd}" = "" ]; then
|
||||
_set_httpd="${_def_httpd}"
|
||||
fi
|
||||
if [ "${_set_mysql}" = "" ]; then
|
||||
_set_mysql="${_def_mysql}"
|
||||
fi
|
||||
if [ "${_set_pgsql}" = "" ]; then
|
||||
_set_pgsql="${_def_pgsql}"
|
||||
fi
|
||||
|
||||
# Set versions in .env file
|
||||
enable_docker_php "${_set_php}"
|
||||
enable_docker_httpd "${_set_httpd}"
|
||||
enable_docker_mysql "${_set_mysql}"
|
||||
enable_docker_pgsql "${_set_pgsql}"
|
||||
|
||||
# Show Server settings
|
||||
echo "Enable SERVERs"
|
||||
echo "--------------"
|
||||
grep '^[A-Za-z0-9]*_SERVER' "${DEVILBOX_PATH}/.env" | column -t -s '='
|
||||
echo
|
||||
|
||||
# Show all other settings
|
||||
echo "Enable Settings"
|
||||
echo "---------------"
|
||||
grep -E '^[-_A-Za-z0-9]*=' "${DEVILBOX_PATH}/.env" | grep -v 'SERVER_' | column -t -s '='
|
||||
echo
|
||||
|
||||
|
||||
# Run
|
||||
docker-compose up -d
|
||||
|
||||
# Wait for http to return 200
|
||||
printf "wait "
|
||||
_max="90"
|
||||
# shellcheck disable=SC2034
|
||||
for i in $(seq 1 "${_max}"); do
|
||||
if [ "$( curl --connect-timeout 1 --max-time 1 -s -o /dev/null -w '%{http_code}' http://localhost/index.php )" = "200" ]; then
|
||||
break;
|
||||
fi
|
||||
sleep 1
|
||||
printf "."
|
||||
done
|
||||
printf "\n"
|
||||
|
||||
# Wait another 30 sec for databases to come up
|
||||
# Wait for it to come up
|
||||
wait_for 30 1
|
||||
echo
|
||||
}
|
||||
|
||||
# Show log/info
|
||||
docker-compose logs
|
||||
#docker-compose ps
|
||||
}
|
||||
devilbox_stop() {
|
||||
# Stop existing dockers
|
||||
cd "${DEVILBOX_PATH}" || exit 1
|
||||
@ -285,36 +428,9 @@ devilbox_stop() {
|
||||
docker-compose rm -f || true
|
||||
|
||||
# Delete existing data dirs
|
||||
_data_dirs="$( get_data_mounts )"
|
||||
IFS='
|
||||
'
|
||||
for d in ${_data_dirs}; do
|
||||
runsu "rm -rf ${d}" "1"
|
||||
done
|
||||
}
|
||||
|
||||
devilbox_show() {
|
||||
###
|
||||
### 1. Show Info
|
||||
###
|
||||
print_h2 "Info"
|
||||
|
||||
# Show wanted versions
|
||||
echo "[Wanted] .env settings"
|
||||
echo "------------------------------------------------------------"
|
||||
get_enabled_versions
|
||||
echo
|
||||
|
||||
# Get actual versions
|
||||
echo "[Actual] http://localhost settings"
|
||||
echo "------------------------------------------------------------"
|
||||
curl -q http://localhost/index.php 2>/dev/null | \
|
||||
grep -E 'circles' | \
|
||||
grep -oE '<strong.*strong>.*\(.*\)' | \
|
||||
sed 's/<strong>//g' | \
|
||||
sed 's/<\/strong>.*(/\t/g' | \
|
||||
sed 's/)//g'
|
||||
echo
|
||||
sudo rm -rf "$( get_default_mount_httpd )"
|
||||
sudo rm -rf "$( get_default_mount_mysql )"
|
||||
sudo rm -rf "$( get_default_mount_postgres )"
|
||||
}
|
||||
|
||||
|
||||
@ -324,20 +440,40 @@ devilbox_show() {
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
debilbox_test() {
|
||||
###
|
||||
### Variables
|
||||
###
|
||||
_ret=0 # Final exit code
|
||||
_oks=17 # Require this many [OK]'s on the page
|
||||
_oks=4 # Require this many [OK]'s on the page
|
||||
|
||||
|
||||
###
|
||||
### 1. Show Info
|
||||
###
|
||||
print_h2 "1. Info"
|
||||
|
||||
# Show wanted versions
|
||||
echo ".env settings"
|
||||
echo "------------------------------------------------------------"
|
||||
echo "HTTPD: $(get_enabled_version_httpd)"
|
||||
echo "PHP: $(get_enabled_version_php)"
|
||||
echo "MySQL: $(get_enabled_version_mysql)"
|
||||
echo "PgSQL: $(get_enabled_version_postgres)"
|
||||
echo
|
||||
|
||||
# Get actual versions
|
||||
echo "http://localhost settings"
|
||||
echo "------------------------------------------------------------"
|
||||
curl -q http://localhost/index.php 2>/dev/null | grep -E '<h3>.*</h3>' | sed 's/.*<h3>//g' | sed 's/<\/h3>//g'
|
||||
echo
|
||||
|
||||
|
||||
###
|
||||
### 2. Test docker-compose
|
||||
###
|
||||
print_h2 "docker-compose"
|
||||
print_h2 "2. docker-compose"
|
||||
|
||||
echo "docker-compose ps"
|
||||
echo "------------------------------------------------------------"
|
||||
@ -356,21 +492,11 @@ debilbox_test() {
|
||||
|
||||
echo "Count [OK]'s on curl-ed url"
|
||||
echo "------------------------------------------------------------"
|
||||
if ! _cnt="$( _test_curled_oks "${_oks}" )"; then
|
||||
_ret="$(( _ret + 1 ))"
|
||||
echo "[ERR]: ${_cnt} / ${_oks} (Not all 'dvlbox-ok' found)"
|
||||
if _cnt="$( _test_curled_oks "${_oks}" )"; then
|
||||
echo "[OK]: ${_cnt} of ${_oks}"
|
||||
else
|
||||
echo "[OK]: ${_cnt} / ${_oks} (All 'dvlbox-ok' found)"
|
||||
fi
|
||||
echo
|
||||
|
||||
echo "Count [ERR]'s on curl-ed url"
|
||||
echo "------------------------------------------------------------"
|
||||
if ! _cnt="$( _test_curled_err )"; then
|
||||
echo "[ERR]: ${_cnt} of ${_oks}"
|
||||
_ret="$(( _ret + 1 ))"
|
||||
echo "[ERR]: ${_cnt} / 0 (Found some 'dvlbox-err')"
|
||||
else
|
||||
echo "[OK]: ${_cnt} / 0 (No 'dvlbox-err' found)"
|
||||
fi
|
||||
echo
|
||||
|
||||
@ -401,19 +527,14 @@ debilbox_test() {
|
||||
sudo find log -type f -exec sh -c 'echo "{}:\n-----------------"; cat "{}"; echo "\n\n"' \;
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# T E S T I N G H E L P E R
|
||||
#
|
||||
################################################################################
|
||||
|
||||
|
||||
###
|
||||
### Test against stopped containers
|
||||
###
|
||||
@ -440,9 +561,20 @@ _test_docker_compose() {
|
||||
###
|
||||
_test_curled_oks() {
|
||||
_oks="${1}"
|
||||
_find_ok="dvlbox-ok"
|
||||
|
||||
_count="$( curl -q http://localhost/index.php 2>/dev/null | grep -c "${_find_ok}" || true )"
|
||||
max="20"
|
||||
i=0
|
||||
while [ $i -lt $max ]; do
|
||||
if [ "$( curl -s -o /dev/null -w '%{http_code}' http://localhost/index.php )" != "404" ]; then
|
||||
break;
|
||||
fi
|
||||
sleep 1s
|
||||
i=$(( i + 1 ))
|
||||
done
|
||||
|
||||
# sleep (in case hhvm segfaulted and needs to be restarted)
|
||||
sleep 10
|
||||
_count="$( curl -q http://localhost/index.php 2>/dev/null | grep -c 'OK' || true )"
|
||||
echo "${_count}"
|
||||
|
||||
if [ "${_count}" != "${_oks}" ]; then
|
||||
@ -451,19 +583,3 @@ _test_curled_oks() {
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
###
|
||||
### Test [ERR]'s found on website
|
||||
###
|
||||
_test_curled_err() {
|
||||
_find_err="dvlbox-err"
|
||||
|
||||
_count="$( curl -q http://localhost/index.php 2>/dev/null | grep -c "${_find_err}" || true )"
|
||||
echo "${_count}"
|
||||
|
||||
if [ "${_count}" != "0" ]; then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
###
|
||||
### Validate arguments
|
||||
###
|
||||
if [ "${#}" != "3" ]; then
|
||||
if [ "${#}" != "5" ]; then
|
||||
echo "Error: Invalid number of arguments"
|
||||
exit 1
|
||||
fi
|
||||
@ -22,9 +22,11 @@ fi
|
||||
###
|
||||
### Get arguments
|
||||
###
|
||||
DEVILBOX_PATH="$( echo "${1}"| sed 's/\/*$//' )" # remove last slash(es): /
|
||||
DEVILBOX_SERV="${2}" # Server
|
||||
DEVILBOX_VERS="${3}" # Version
|
||||
DVL_PATH="$( echo "${1}"| sed 's/\/*$//' )" # remove last slash(es): /
|
||||
DVL_SRV1="${2}" # Server 1
|
||||
DVL_VER1="${3}" # Version 1
|
||||
DVL_SRV2="${4}" # Server 2
|
||||
DVL_VER2="${5}" # Version 2
|
||||
|
||||
|
||||
|
||||
@ -37,7 +39,7 @@ DEVILBOX_VERS="${3}" # Version
|
||||
###
|
||||
### Source library
|
||||
###
|
||||
. "${DEVILBOX_PATH}/.tests/.lib.sh" "${DEVILBOX_PATH}"
|
||||
. "${DVL_PATH}/.tests/.lib.sh" "${DVL_PATH}"
|
||||
|
||||
###
|
||||
### Reset .env file
|
||||
@ -64,38 +66,6 @@ set_host_port_pgsql "5432"
|
||||
#
|
||||
################################################################################
|
||||
|
||||
###
|
||||
### Docker default versions to use
|
||||
###
|
||||
_httpd="nginx-stable"
|
||||
_mysql="mariadb-10.1"
|
||||
_pgsql="9.6"
|
||||
_php="php-fpm-7.0"
|
||||
|
||||
###
|
||||
### Set specific version
|
||||
###
|
||||
if [ "${DEVILBOX_SERV}" = "httpd" ]; then
|
||||
_httpd="${DEVILBOX_VERS}"
|
||||
_head="HTTPD: ${DEVILBOX_VERS}"
|
||||
elif [ "${DEVILBOX_SERV}" = "mysql" ]; then
|
||||
_mysql="${DEVILBOX_VERS}"
|
||||
_head="MYSQL: ${DEVILBOX_VERS}"
|
||||
elif [ "${DEVILBOX_SERV}" = "pgsql" ]; then
|
||||
_pgsql="${DEVILBOX_VERS}"
|
||||
_head="PGSQL: ${DEVILBOX_VERS}"
|
||||
elif [ "${DEVILBOX_SERV}" = "php" ]; then
|
||||
_php="${DEVILBOX_VERS}"
|
||||
_head="PHP: ${DEVILBOX_VERS}"
|
||||
fi
|
||||
|
||||
###
|
||||
### Go
|
||||
###
|
||||
devilbox_start "${_httpd}" "${_mysql}" "${_pgsql}" "${_php}" "${_head}"
|
||||
devilbox_show
|
||||
devilbox_start "${DVL_SRV1}" "${DVL_VER1}" "${DVL_SRV2}" "${DVL_VER2}"
|
||||
debilbox_test
|
||||
devilbox_stop
|
||||
|
||||
|
||||
|
||||
|
193
.travis.yml
193
.travis.yml
@ -1,5 +1,6 @@
|
||||
language: bash
|
||||
dist: trusty
|
||||
###
|
||||
### Enable sudo (required for docker service)
|
||||
###
|
||||
sudo: required
|
||||
|
||||
|
||||
@ -14,63 +15,169 @@ services:
|
||||
### Global variables
|
||||
###
|
||||
env:
|
||||
###
|
||||
### The matrix specifies 2 versions to compare against each other.
|
||||
### As PHP (any versoin) needs to be able to run with everything,
|
||||
### I am going to test any PHP version against any other service.
|
||||
###
|
||||
matrix:
|
||||
# Test httpd
|
||||
- SERVER=httpd VERSION=apache-2.2 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=httpd VERSION=apache-2.4 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=httpd VERSION=nginx-stable DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=httpd VERSION=nginx-mainline DOCKER_COMPOSE_VERSION=1.13.0
|
||||
# Test mysql
|
||||
- SERVER=mysql VERSION=mysql-5.5 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=mysql VERSION=mysql-5.6 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=mysql VERSION=mysql-5.7 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=mysql VERSION=mysql-8.0 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=mysql VERSION=mariadb-5.5 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=mysql VERSION=mariadb-10.0 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=mysql VERSION=mariadb-10.1 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=mysql VERSION=mariadb-10.2 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=mysql VERSION=mariadb-10.3 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
# Test pgsql
|
||||
- SERVER=pgsql VERSION=9.2 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=pgsql VERSION=9.3 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=pgsql VERSION=9.4 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=pgsql VERSION=9.5 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=pgsql VERSION=9.6 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
# Test php
|
||||
- SERVER=php VERSION=php-fpm-5.4 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=php VERSION=php-fpm-5.5 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=php VERSION=php-fpm-5.6 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=php VERSION=php-fpm-7.0 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=php VERSION=php-fpm-7.1 DOCKER_COMPOSE_VERSION=1.13.0
|
||||
- SERVER=php VERSION=hhvm-latest DOCKER_COMPOSE_VERSION=1.13.0
|
||||
###
|
||||
### PHP vs WWW
|
||||
###
|
||||
# PHP vs Apache 2.2
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=HTTPD VER2=apache-2.2
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=HTTPD VER2=apache-2.2
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=HTTPD VER2=apache-2.2
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=HTTPD VER2=apache-2.2
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=HTTPD VER2=apache-2.2
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=HTTPD VER2=apache-2.2
|
||||
# PHP vs Apache 2.4
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=HTTPD VER2=apache-2.4
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=HTTPD VER2=apache-2.4
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=HTTPD VER2=apache-2.4
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=HTTPD VER2=apache-2.4
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=HTTPD VER2=apache-2.4
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=HTTPD VER2=apache-2.4
|
||||
# PHP vs Nginx stable
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=HTTPD VER2=nginx-stable
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=HTTPD VER2=nginx-stable
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=HTTPD VER2=nginx-stable
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=HTTPD VER2=nginx-stable
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=HTTPD VER2=nginx-stable
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=HTTPD VER2=nginx-stable
|
||||
# PHP vs Nginx mainline
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=HTTPD VER2=nginx-mainline
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=HTTPD VER2=nginx-mainline
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=HTTPD VER2=nginx-mainline
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=HTTPD VER2=nginx-mainline
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=HTTPD VER2=nginx-mainline
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=HTTPD VER2=nginx-mainline
|
||||
|
||||
###
|
||||
### PHP vs MYSQL
|
||||
###
|
||||
# PHP vs MySQL 5.5
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=MYSQL VER2=mysql-5.5
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=MYSQL VER2=mysql-5.5
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=MYSQL VER2=mysql-5.5
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=MYSQL VER2=mysql-5.5
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=MYSQL VER2=mysql-5.5
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=MYSQL VER2=mysql-5.5
|
||||
# PHP vs MySQL 5.6
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=MYSQL VER2=mysql-5.6
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=MYSQL VER2=mysql-5.6
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=MYSQL VER2=mysql-5.6
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=MYSQL VER2=mysql-5.6
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=MYSQL VER2=mysql-5.6
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=MYSQL VER2=mysql-5.6
|
||||
# PHP vs MySQL 5.7
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=MYSQL VER2=mysql-5.7
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=MYSQL VER2=mysql-5.7
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=MYSQL VER2=mysql-5.7
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=MYSQL VER2=mysql-5.7
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=MYSQL VER2=mysql-5.7
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=MYSQL VER2=mysql-5.7
|
||||
# PHP vs MySQL 8.0
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=MYSQL VER2=mysql-8.0
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=MYSQL VER2=mysql-8.0
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=MYSQL VER2=mysql-8.0
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=MYSQL VER2=mysql-8.0
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=MYSQL VER2=mysql-8.0
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=MYSQL VER2=mysql-8.0
|
||||
# PHP vs MariaDB 5.5
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=MYSQL VER2=mariadb-5.5
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=MYSQL VER2=mariadb-5.5
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=MYSQL VER2=mariadb-5.5
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=MYSQL VER2=mariadb-5.5
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=MYSQL VER2=mariadb-5.5
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=MYSQL VER2=mariadb-5.5
|
||||
# PHP vs MariaDB 10.0
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=MYSQL VER2=mariadb-10.0
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=MYSQL VER2=mariadb-10.0
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=MYSQL VER2=mariadb-10.0
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=MYSQL VER2=mariadb-10.0
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=MYSQL VER2=mariadb-10.0
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=MYSQL VER2=mariadb-10.0
|
||||
# PHP vs MariaDB 10.1
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=MYSQL VER2=mariadb-10.1
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=MYSQL VER2=mariadb-10.1
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=MYSQL VER2=mariadb-10.1
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=MYSQL VER2=mariadb-10.1
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=MYSQL VER2=mariadb-10.1
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=MYSQL VER2=mariadb-10.1
|
||||
# PHP vs MariaDB 10.2
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=MYSQL VER2=mariadb-10.2
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=MYSQL VER2=mariadb-10.2
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=MYSQL VER2=mariadb-10.2
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=MYSQL VER2=mariadb-10.2
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=MYSQL VER2=mariadb-10.2
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=MYSQL VER2=mariadb-10.2
|
||||
# PHP vs MariaDB 10.3
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=MYSQL VER2=mariadb-10.3
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=MYSQL VER2=mariadb-10.3
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=MYSQL VER2=mariadb-10.3
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=MYSQL VER2=mariadb-10.3
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=MYSQL VER2=mariadb-10.3
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=MYSQL VER2=mariadb-10.3
|
||||
|
||||
###
|
||||
### PHP vs PostgreSQL
|
||||
###
|
||||
# PHP vs PgSQL 9.2
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=PGSQL VER2=9.2
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=PGSQL VER2=9.2
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=PGSQL VER2=9.2
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=PGSQL VER2=9.2
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=PGSQL VER2=9.2
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=PGSQL VER2=9.2
|
||||
# PHP vs PgSQL 9.3
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=PGSQL VER2=9.3
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=PGSQL VER2=9.3
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=PGSQL VER2=9.3
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=PGSQL VER2=9.3
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=PGSQL VER2=9.3
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=PGSQL VER2=9.3
|
||||
# PHP vs PgSQL 9.4
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=PGSQL VER2=9.4
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=PGSQL VER2=9.4
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=PGSQL VER2=9.4
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=PGSQL VER2=9.4
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=PGSQL VER2=9.4
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=PGSQL VER2=9.4
|
||||
# PHP vs PgSQL 9.5
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=PGSQL VER2=9.5
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=PGSQL VER2=9.5
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=PGSQL VER2=9.5
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=PGSQL VER2=9.5
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=PGSQL VER2=9.5
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=PGSQL VER2=9.5
|
||||
# PHP vs PgSQL 9.6
|
||||
- SRV1=PHP VER1=php-fpm-5.4 SRV2=PGSQL VER2=9.6
|
||||
- SRV1=PHP VER1=php-fpm-5.5 SRV2=PGSQL VER2=9.6
|
||||
- SRV1=PHP VER1=php-fpm-5.6 SRV2=PGSQL VER2=9.6
|
||||
- SRV1=PHP VER1=php-fpm-7.0 SRV2=PGSQL VER2=9.6
|
||||
- SRV1=PHP VER1=php-fpm-7.1 SRV2=PGSQL VER2=9.6
|
||||
- SRV1=PHP VER1=hhvm-latest SRV2=PGSQL VER2=9.6
|
||||
|
||||
|
||||
###
|
||||
### Berfore Install
|
||||
###
|
||||
before_install:
|
||||
# List info
|
||||
- whoami
|
||||
- groups
|
||||
- uname -a
|
||||
# List versions
|
||||
- docker version
|
||||
- docker-compose version
|
||||
# Get newer docker version
|
||||
- sudo apt-get update
|
||||
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-engine
|
||||
# Get newer docker-compose version
|
||||
- sudo rm /usr/local/bin/docker-compose
|
||||
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||
- curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||
- chmod +x docker-compose
|
||||
- sudo mv docker-compose /usr/local/bin
|
||||
# List versions again
|
||||
- docker version
|
||||
- docker-compose version
|
||||
|
||||
|
||||
###
|
||||
### Before Script
|
||||
###
|
||||
before_script:
|
||||
|
||||
# Disable services enabled by default
|
||||
# http://docs.travis-ci.com/user/database-setup/#MySQL
|
||||
- sudo /etc/init.d/mysql stop || true
|
||||
@ -83,4 +190,4 @@ before_script:
|
||||
### Test
|
||||
###
|
||||
script:
|
||||
- .tests/test_single.sh . "${SERVER}" "${VERSION}"
|
||||
- .tests/test_single.sh . "${SRV1}" "${VER1}" "${SRV2}" "${VER2}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user