Split builds

This commit is contained in:
cytopia 2016-12-26 21:44:04 +01:00
parent 376576e495
commit 1502609913
No known key found for this signature in database
GPG Key ID: 6D56EDB8695128A2
8 changed files with 760 additions and 76 deletions

View File

@ -277,6 +277,10 @@ set_host_port_pgsql() {
}
set_debug_enable() {
run "sed -i'' \"s/^DEBUG_COMPOSE_ENTRYPOINT=.*/DEBUG_COMPOSE_ENTRYPOINT=1/\" \"${DEVILBOX_PATH}/.env\""
}
################################################################################
#
@ -309,7 +313,7 @@ devilbox_start() {
enable_docker_php "${_new_php}"
# Run
docker-compose up -d
docker-compose up &
# Wait for it to come up
sleep 20
@ -317,9 +321,9 @@ devilbox_start() {
devilbox_stop() {
# Stop existing dockers
cd "${DEVILBOX_PATH}" || exit 1
docker-compose down || true
docker-compose stop || true
docker-compose kill || true
docker-compose down > /dev/null 2>&1 || true
docker-compose stop > /dev/null 2>&1 || true
docker-compose kill > /dev/null 2>&1 || true
docker-compose rm -f || true
# Delete existing data dirs
@ -334,6 +338,8 @@ devilbox_stop() {
# T E S T T H E D E V I L B O X
#
################################################################################
debilbox_test() {
echo ".env settings"
echo "------------------------------------------------------------"
@ -358,3 +364,4 @@ debilbox_test() {
return 1
fi
}

32
.tests/bootstrap.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/sh -eu
if [ "${#}" != "1" ]; then
exit 1
fi
if [ ! -d "${1}" ]; then
exit 1
fi
DEVILBOX_PATH="${1}"
# Source files
. "${DEVILBOX_PATH}/.tests/.lib.sh" "${DEVILBOX_PATH}"
###
### Reset .env file
###
reset_env_file
###
### Enable debug mode
###
set_debug_enable
###
### Alter host ports
###
set_host_port_httpd "80"
set_host_port_mysql "33060"
set_host_port_pgsql "54320"

View File

@ -14,7 +14,11 @@ fi
### Get devilbox path and source libs file
###
DEVILBOX_PATH="$( echo "${1}"| sed 's/\/*$//' )" # remove last slash(es): /
# Source files
. "${DEVILBOX_PATH}/.tests/.lib.sh" "${DEVILBOX_PATH}"
. "${DEVILBOX_PATH}/.tests/bootstrap.sh" "${DEVILBOX_PATH}"
################################################################################
#
@ -27,6 +31,11 @@ DEVILBOX_PATH="$( echo "${1}"| sed 's/\/*$//' )" # remove last slash(es): /
###
reset_env_file
###
### Enable debug mode
###
set_debug_enable
###
### Alter host ports
###
@ -252,6 +261,121 @@ devilbox_stop
####################################################################################################
####################################################################################################
###
### TEST PGSQL
###
####################################################################################################
####################################################################################################
################################################################################
#
# PgSQL 1/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.2"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (1/5): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# PgSQL 2/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.3"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (2/5): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# PgSQL 3/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.4"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (3/5): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# PgSQL 4/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.5"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (4/5): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# PgSQL 5/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (5/5): ${_mysql}"
debilbox_test
devilbox_stop
####################################################################################################

117
.tests/test_httpd.sh Executable file
View File

@ -0,0 +1,117 @@
#!/bin/sh -eu
if [ "${#}" != "1" ]; then
echo "Error: Invalid number of arguments"
exit 1
fi
if [ ! -d "${1}" ]; then
echo "Error: Not a directory: ${1}"
exit 1
fi
DEVILBOX_PATH="$( echo "${1}"| sed 's/\/*$//' )" # remove last slash(es): /
# Source files
. "${DEVILBOX_PATH}/.tests/.lib.sh" "${DEVILBOX_PATH}"
. "${DEVILBOX_PATH}/.tests/bootstrap.sh" "${DEVILBOX_PATH}"
####################################################################################################
####################################################################################################
###
### TEST HTTPD
###
####################################################################################################
####################################################################################################
################################################################################
#
# HTTPD 1/4
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.2"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "HTTPD (1/4): ${_httpd}"
debilbox_test
devilbox_stop
################################################################################
#
# HTTPD 2/4
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "HTTPD (2/4): ${_httpd}"
debilbox_test
devilbox_stop
################################################################################
#
# HTTPD 3/4
#
################################################################################
###
### Docker versions to use
###
_httpd="nginx-stable"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "HTTPD (3/4): ${_httpd}"
debilbox_test
devilbox_stop
################################################################################
#
# HTTPD 4/4
#
################################################################################
###
### Docker versions to use
###
_httpd="nginx-mainline"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "HTTPD (4/4): ${_httpd}"
debilbox_test
devilbox_stop

174
.tests/test_mysql.sh Executable file
View File

@ -0,0 +1,174 @@
#!/bin/sh -eu
if [ "${#}" != "1" ]; then
echo "Error: Invalid number of arguments"
exit 1
fi
if [ ! -d "${1}" ]; then
echo "Error: Not a directory: ${1}"
exit 1
fi
DEVILBOX_PATH="$( echo "${1}"| sed 's/\/*$//' )" # remove last slash(es): /
# Source files
. "${DEVILBOX_PATH}/.tests/.lib.sh" "${DEVILBOX_PATH}"
. "${DEVILBOX_PATH}/.tests/bootstrap.sh" "${DEVILBOX_PATH}"
####################################################################################################
####################################################################################################
###
### TEST MYSQL
###
####################################################################################################
####################################################################################################
################################################################################
#
# MySQL 1/7
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mysql-5.5"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "MySQL (1/7): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# MySQL 2/7
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mysql-5.6"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "MySQL (2/7): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# MySQL 3/7
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mysql-5.7"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "MySQL (3/7): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# MySQL 4/7
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-5.5"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "MySQL (4/7): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# MySQL 5/7
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.0"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "MySQL (5/7): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# MySQL 6/7
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.1"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "MySQL (6/7): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# MySQL 7/7
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "MySQL (7/7): ${_mysql}"
debilbox_test
devilbox_stop

132
.tests/test_pgsql.sh Executable file
View File

@ -0,0 +1,132 @@
#!/bin/sh -eu
if [ "${#}" != "1" ]; then
echo "Error: Invalid number of arguments"
exit 1
fi
if [ ! -d "${1}" ]; then
echo "Error: Not a directory: ${1}"
exit 1
fi
DEVILBOX_PATH="$( echo "${1}"| sed 's/\/*$//' )" # remove last slash(es): /
# Source files
. "${DEVILBOX_PATH}/.tests/.lib.sh" "${DEVILBOX_PATH}"
. "${DEVILBOX_PATH}/.tests/bootstrap.sh" "${DEVILBOX_PATH}"
####################################################################################################
####################################################################################################
###
### TEST PGSQL
###
####################################################################################################
####################################################################################################
################################################################################
#
# PgSQL 1/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.2"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (1/5): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# PgSQL 2/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.3"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (2/5): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# PgSQL 3/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.4"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (3/5): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# PgSQL 4/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.5"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (4/5): ${_mysql}"
debilbox_test
devilbox_stop
################################################################################
#
# PgSQL 5/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PgSQL (5/5): ${_mysql}"
debilbox_test
devilbox_stop

132
.tests/test_php.sh Executable file
View File

@ -0,0 +1,132 @@
#!/bin/sh -eu
if [ "${#}" != "1" ]; then
echo "Error: Invalid number of arguments"
exit 1
fi
if [ ! -d "${1}" ]; then
echo "Error: Not a directory: ${1}"
exit 1
fi
DEVILBOX_PATH="$( echo "${1}"| sed 's/\/*$//' )" # remove last slash(es): /
# Source files
. "${DEVILBOX_PATH}/.tests/.lib.sh" "${DEVILBOX_PATH}"
. "${DEVILBOX_PATH}/.tests/bootstrap.sh" "${DEVILBOX_PATH}"
####################################################################################################
####################################################################################################
###
### TEST PHP
###
####################################################################################################
####################################################################################################
################################################################################
#
# PHP 1/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-5.4"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PHP (1/5): ${_php}"
debilbox_test
devilbox_stop
################################################################################
#
# PHP 2/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-5.5"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PHP (2/5): ${_php}"
debilbox_test
devilbox_stop
################################################################################
#
# PHP 3/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-5.6"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PHP (3/5): ${_php}"
debilbox_test
devilbox_stop
################################################################################
#
# PHP 4/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-7.0"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PHP (4/5): ${_php}"
debilbox_test
devilbox_stop
################################################################################
#
# PHP 5/5
#
################################################################################
###
### Docker versions to use
###
_httpd="apache-2.4"
_mysql="mariadb-10.2"
_pysql="9.6"
_php="php-fpm-7.1"
###
### Go
###
devilbox_start "${_httpd}" "${_mysql}" "${_pysql}" "${_php}" "PHP (5/5): ${_php}"
debilbox_test
devilbox_stop

View File

@ -1,58 +1,24 @@
#language: python
#python:
# - 2.7
language: bash
dist: trusty
sudo: required
###
### Define Operating Systems
###
#os:
# - linux
# #- osx
###
### Configure OS
###
matrix:
include:
# Ubuntu 12.04
- os: linux
dist: precise
sudo: required
#python: 3.2
#env: TOXENV=py32
services:
- docker
# Ubuntu 14.04 LTS Server Edition 64 bit
- os: linux
dist: trusty
sudo: required
#python: 3.2
#env: TOXENV=py32
services:
- docker
# OSX 10.11
#- os: osx
# osx_image: xcode7.3
# language: generic
# env: TOXENV=py32
# OSX 10.12
#- os: osx
# osx_image: xcode8.2
# language: generic
# env: TOXENV=py32
###
### Add services
### Attach services
###
services:
- docker
###
### Global variables
###
env:
matrix:
- SERVER=httpd
- SERVER=mysql
- SERVER=pgsql
- SERVER=php
global:
- DEVILBOX_PHP_VERSION="$( grep -Eo 'image:.*PHP.*:.*' docker-compose.yml | sed 's/.*:.*://g' )"
- DEVILBOX_HTTPD_VERSION="$( grep -Eo 'image:.*HTTPD.*:.*' docker-compose.yml | sed 's/.*:.*://g' )"
@ -74,36 +40,36 @@ before_install:
###
### Install
###
install:
# php
- docker pull cytopia/php-fpm-5.4:${DEVILBOX_PHP_VERSION}
- docker pull cytopia/php-fpm-5.5:${DEVILBOX_PHP_VERSION}
- docker pull cytopia/php-fpm-5.6:${DEVILBOX_PHP_VERSION}
- docker pull cytopia/php-fpm-7.0:${DEVILBOX_PHP_VERSION}
- docker pull cytopia/php-fpm-7.1:${DEVILBOX_PHP_VERSION}
# web
- docker pull cytopia/apache-2.2:${DEVILBOX_HTTPD_VERSION}
- docker pull cytopia/apache-2.4:${DEVILBOX_HTTPD_VERSION}
- docker pull cytopia/nginx-stable:${DEVILBOX_HTTPD_VERSION}
- docker pull cytopia/nginx-mainline:${DEVILBOX_HTTPD_VERSION}
# mysql/mariadb
- docker pull cytopia/mysql-5.5:${DEVILBOX_MYSQL_VERSION}
- docker pull cytopia/mysql-5.6:${DEVILBOX_MYSQL_VERSION}
- docker pull cytopia/mysql-5.7:${DEVILBOX_MYSQL_VERSION}
- docker pull cytopia/mariadb-5.5:${DEVILBOX_MYSQL_VERSION}
- docker pull cytopia/mariadb-10.0:${DEVILBOX_MYSQL_VERSION}
- docker pull cytopia/mariadb-10.1:${DEVILBOX_MYSQL_VERSION}
- docker pull cytopia/mariadb-10.2:${DEVILBOX_MYSQL_VERSION}
# postgresql (official images)
- docker pull postgres:9.2
- docker pull postgres:9.3
- docker pull postgres:9.4
- docker pull postgres:9.5
- docker pull postgres:9.6
#install:
# # php
# - docker pull cytopia/php-fpm-5.4:${DEVILBOX_PHP_VERSION}
# - docker pull cytopia/php-fpm-5.5:${DEVILBOX_PHP_VERSION}
# - docker pull cytopia/php-fpm-5.6:${DEVILBOX_PHP_VERSION}
# - docker pull cytopia/php-fpm-7.0:${DEVILBOX_PHP_VERSION}
# - docker pull cytopia/php-fpm-7.1:${DEVILBOX_PHP_VERSION}
# # web
# - docker pull cytopia/apache-2.2:${DEVILBOX_HTTPD_VERSION}
# - docker pull cytopia/apache-2.4:${DEVILBOX_HTTPD_VERSION}
# - docker pull cytopia/nginx-stable:${DEVILBOX_HTTPD_VERSION}
# - docker pull cytopia/nginx-mainline:${DEVILBOX_HTTPD_VERSION}
# # mysql/mariadb
# - docker pull cytopia/mysql-5.5:${DEVILBOX_MYSQL_VERSION}
# - docker pull cytopia/mysql-5.6:${DEVILBOX_MYSQL_VERSION}
# - docker pull cytopia/mysql-5.7:${DEVILBOX_MYSQL_VERSION}
# - docker pull cytopia/mariadb-5.5:${DEVILBOX_MYSQL_VERSION}
# - docker pull cytopia/mariadb-10.0:${DEVILBOX_MYSQL_VERSION}
# - docker pull cytopia/mariadb-10.1:${DEVILBOX_MYSQL_VERSION}
# - docker pull cytopia/mariadb-10.2:${DEVILBOX_MYSQL_VERSION}
# # postgresql (official images)
# - docker pull postgres:9.2
# - docker pull postgres:9.3
# - docker pull postgres:9.4
# - docker pull postgres:9.5
# - docker pull postgres:9.6
###
### Test
###
script:
- .tests/test.sh .
- .tests/test_${SERVER}.sh .