2018-06-03 18:45:01 +00:00
|
|
|
###
|
|
|
|
### Enable Python support
|
|
|
|
###
|
|
|
|
language: python
|
|
|
|
|
2017-05-17 06:37:36 +00:00
|
|
|
###
|
|
|
|
### Enable sudo (required for docker service)
|
|
|
|
###
|
2016-12-26 20:44:04 +00:00
|
|
|
sudo: required
|
2016-11-03 13:48:09 +00:00
|
|
|
|
2016-12-26 02:54:59 +00:00
|
|
|
|
2016-12-26 14:13:46 +00:00
|
|
|
###
|
2016-12-26 20:44:04 +00:00
|
|
|
### Attach services
|
2016-11-03 13:48:09 +00:00
|
|
|
###
|
2016-12-26 20:44:04 +00:00
|
|
|
services:
|
|
|
|
- docker
|
2016-11-03 13:48:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
###
|
2017-05-17 06:45:31 +00:00
|
|
|
### Specify combinations
|
2016-11-03 13:48:09 +00:00
|
|
|
###
|
|
|
|
env:
|
2018-06-03 18:45:01 +00:00
|
|
|
###
|
|
|
|
### Check Documentation
|
|
|
|
###
|
|
|
|
- S1=DOCUMENTATION
|
|
|
|
|
2018-08-11 23:21:37 +00:00
|
|
|
###
|
2018-11-18 19:30:41 +00:00
|
|
|
### Check Update script
|
2018-08-11 23:21:37 +00:00
|
|
|
###
|
|
|
|
- S1=UPDATE V1=php
|
|
|
|
- S1=UPDATE V1=httpd
|
|
|
|
- S1=UPDATE V1=mysql
|
|
|
|
- S1=UPDATE V1=rest
|
|
|
|
|
2018-11-18 19:30:41 +00:00
|
|
|
###
|
|
|
|
### Test various Docker/DockerCompose versions
|
|
|
|
###
|
|
|
|
### Docker versions: https://github.com/docker/docker-ce/releases
|
|
|
|
### Compose versions: https://github.com/docker/compose/releases
|
|
|
|
###
|
|
|
|
# Latest Docker version against various DockerCompose versions
|
2018-12-09 00:55:12 +00:00
|
|
|
- S1=DOCKER V1=1 S2=COMPOSE V2=1
|
|
|
|
- S1=DOCKER V1=1 S2=COMPOSE V2=2
|
|
|
|
- S1=DOCKER V1=1 S2=COMPOSE V2=3
|
|
|
|
- S1=DOCKER V1=1 S2=COMPOSE V2=4
|
|
|
|
- S1=DOCKER V1=1 S2=COMPOSE V2=5
|
|
|
|
# 2nd Latest Docker version against various DockerCompose versions
|
2018-11-18 19:30:41 +00:00
|
|
|
- S1=DOCKER V1=2 S2=COMPOSE V2=1
|
|
|
|
- S1=DOCKER V1=2 S2=COMPOSE V2=2
|
|
|
|
- S1=DOCKER V1=2 S2=COMPOSE V2=3
|
|
|
|
- S1=DOCKER V1=2 S2=COMPOSE V2=4
|
|
|
|
- S1=DOCKER V1=2 S2=COMPOSE V2=5
|
2018-12-09 00:55:12 +00:00
|
|
|
# 3rd Latest Docker version against various DockerCompose versions
|
2018-11-18 19:30:41 +00:00
|
|
|
- S1=DOCKER V1=3 S2=COMPOSE V2=1
|
|
|
|
- S1=DOCKER V1=3 S2=COMPOSE V2=2
|
|
|
|
- S1=DOCKER V1=3 S2=COMPOSE V2=3
|
|
|
|
- S1=DOCKER V1=3 S2=COMPOSE V2=4
|
|
|
|
- S1=DOCKER V1=3 S2=COMPOSE V2=5
|
2018-12-09 00:55:12 +00:00
|
|
|
# 4th Latest Docker version against various DockerCompose versions
|
2018-11-18 19:30:41 +00:00
|
|
|
- S1=DOCKER V1=4 S2=COMPOSE V2=1
|
|
|
|
- S1=DOCKER V1=4 S2=COMPOSE V2=2
|
|
|
|
- S1=DOCKER V1=4 S2=COMPOSE V2=3
|
|
|
|
- S1=DOCKER V1=4 S2=COMPOSE V2=4
|
|
|
|
- S1=DOCKER V1=4 S2=COMPOSE V2=5
|
2018-12-09 00:55:12 +00:00
|
|
|
# 5th Latest Docker version against various DockerCompose versions
|
2018-11-18 19:30:41 +00:00
|
|
|
- S1=DOCKER V1=5 S2=COMPOSE V2=1
|
|
|
|
- S1=DOCKER V1=5 S2=COMPOSE V2=2
|
|
|
|
- S1=DOCKER V1=5 S2=COMPOSE V2=3
|
|
|
|
- S1=DOCKER V1=5 S2=COMPOSE V2=4
|
|
|
|
- S1=DOCKER V1=5 S2=COMPOSE V2=5
|
|
|
|
|
2017-05-17 06:37:36 +00:00
|
|
|
###
|
|
|
|
### The matrix specifies 2 versions to compare against each other.
|
2018-03-07 00:15:58 +00:00
|
|
|
### As PHP (any version) needs to be able to run with everything,
|
2017-05-17 06:37:36 +00:00
|
|
|
### I am going to test any PHP version against any other service.
|
|
|
|
###
|
2017-05-17 06:45:31 +00:00
|
|
|
###
|
|
|
|
### PHP vs WWW
|
|
|
|
###
|
|
|
|
# PHP vs Apache 2.2
|
2018-05-12 17:58:29 +00:00
|
|
|
- S1=PHP V1=5.3 S2=HTTPD V2=apache-2.2
|
2018-03-06 07:50:29 +00:00
|
|
|
- S1=PHP V1=5.4 S2=HTTPD V2=apache-2.2
|
|
|
|
- S1=PHP V1=5.5 S2=HTTPD V2=apache-2.2
|
|
|
|
- S1=PHP V1=5.6 S2=HTTPD V2=apache-2.2
|
|
|
|
- S1=PHP V1=7.0 S2=HTTPD V2=apache-2.2
|
|
|
|
- S1=PHP V1=7.1 S2=HTTPD V2=apache-2.2
|
|
|
|
- S1=PHP V1=7.2 S2=HTTPD V2=apache-2.2
|
2018-05-13 15:21:32 +00:00
|
|
|
- S1=PHP V1=7.3 S2=HTTPD V2=apache-2.2
|
2018-11-02 21:55:15 +00:00
|
|
|
- S1=PHP V1=7.4 S2=HTTPD V2=apache-2.2
|
2017-05-17 06:45:31 +00:00
|
|
|
# PHP vs Apache 2.4
|
2018-05-12 17:58:29 +00:00
|
|
|
- S1=PHP V1=5.3 S2=HTTPD V2=apache-2.4
|
2018-03-06 07:50:29 +00:00
|
|
|
- S1=PHP V1=5.4 S2=HTTPD V2=apache-2.4
|
|
|
|
- S1=PHP V1=5.5 S2=HTTPD V2=apache-2.4
|
|
|
|
- S1=PHP V1=5.6 S2=HTTPD V2=apache-2.4
|
|
|
|
- S1=PHP V1=7.0 S2=HTTPD V2=apache-2.4
|
|
|
|
- S1=PHP V1=7.1 S2=HTTPD V2=apache-2.4
|
|
|
|
- S1=PHP V1=7.2 S2=HTTPD V2=apache-2.4
|
2018-05-13 15:21:32 +00:00
|
|
|
- S1=PHP V1=7.3 S2=HTTPD V2=apache-2.4
|
2018-11-02 21:55:15 +00:00
|
|
|
- S1=PHP V1=7.4 S2=HTTPD V2=apache-2.4
|
2017-05-17 06:45:31 +00:00
|
|
|
# PHP vs Nginx stable
|
2018-05-12 17:58:29 +00:00
|
|
|
- S1=PHP V1=5.3 S2=HTTPD V2=nginx-stable
|
2018-03-06 07:50:29 +00:00
|
|
|
- S1=PHP V1=5.4 S2=HTTPD V2=nginx-stable
|
|
|
|
- S1=PHP V1=5.5 S2=HTTPD V2=nginx-stable
|
|
|
|
- S1=PHP V1=5.6 S2=HTTPD V2=nginx-stable
|
|
|
|
- S1=PHP V1=7.0 S2=HTTPD V2=nginx-stable
|
|
|
|
- S1=PHP V1=7.1 S2=HTTPD V2=nginx-stable
|
|
|
|
- S1=PHP V1=7.2 S2=HTTPD V2=nginx-stable
|
2018-05-13 15:21:32 +00:00
|
|
|
- S1=PHP V1=7.3 S2=HTTPD V2=nginx-stable
|
2018-11-02 21:55:15 +00:00
|
|
|
- S1=PHP V1=7.4 S2=HTTPD V2=nginx-stable
|
2017-05-17 06:45:31 +00:00
|
|
|
# PHP vs Nginx mainline
|
2018-05-12 17:58:29 +00:00
|
|
|
- S1=PHP V1=5.3 S2=HTTPD V2=nginx-mainline
|
2018-03-06 07:50:29 +00:00
|
|
|
- S1=PHP V1=5.4 S2=HTTPD V2=nginx-mainline
|
|
|
|
- S1=PHP V1=5.5 S2=HTTPD V2=nginx-mainline
|
|
|
|
- S1=PHP V1=5.6 S2=HTTPD V2=nginx-mainline
|
|
|
|
- S1=PHP V1=7.0 S2=HTTPD V2=nginx-mainline
|
|
|
|
- S1=PHP V1=7.1 S2=HTTPD V2=nginx-mainline
|
|
|
|
- S1=PHP V1=7.2 S2=HTTPD V2=nginx-mainline
|
2018-05-13 15:21:32 +00:00
|
|
|
- S1=PHP V1=7.3 S2=HTTPD V2=nginx-mainline
|
2018-11-02 21:55:15 +00:00
|
|
|
- S1=PHP V1=7.4 S2=HTTPD V2=nginx-mainline
|
2017-05-17 06:45:31 +00:00
|
|
|
|
2017-05-17 06:37:36 +00:00
|
|
|
|
2018-06-03 18:45:01 +00:00
|
|
|
###
|
|
|
|
### Installation
|
|
|
|
###
|
|
|
|
install:
|
|
|
|
# Install dependencies for documentation
|
|
|
|
- if [ "${S1}" = "DOCUMENTATION" ]; then
|
2018-11-18 19:30:41 +00:00
|
|
|
max=100; i=0; while [ $i -lt $max ]; do if pip install sphinx; then break; else i=$((i+1)); fi done;
|
|
|
|
max=100; i=0; while [ $i -lt $max ]; do if pip install sphinx-autobuild; then break; else i=$((i+1)); fi done;
|
|
|
|
max=100; i=0; while [ $i -lt $max ]; do if pip install recommonmark; then break; else i=$((i+1)); fi done;
|
|
|
|
max=100; i=0; while [ $i -lt $max ]; do if pip install sphinx_rtd_theme; then break; else i=$((i+1)); fi done;
|
2018-06-03 18:45:01 +00:00
|
|
|
fi
|
|
|
|
|
2018-12-09 00:55:12 +00:00
|
|
|
# Determine latest Docker version in apt
|
2018-11-18 19:30:41 +00:00
|
|
|
- set -e;
|
|
|
|
DOCKER_APT="";
|
|
|
|
if [ "${S1}" = "DOCKER" ]; then
|
2018-12-09 00:55:12 +00:00
|
|
|
max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update -qq; then break; else i=$((i+1)); fi; done;
|
|
|
|
DOCKER_APT="$( curl -sS https://raw.githubusercontent.com/cytopia/tools/master/docker-apt-versions | sh -s "${V1}" )";
|
2018-11-18 19:30:41 +00:00
|
|
|
fi;
|
|
|
|
if [ -n "${DOCKER_APT}" ]; then
|
|
|
|
DOCKER_APT="=${DOCKER_APT}";
|
|
|
|
fi;
|
2018-12-09 00:55:12 +00:00
|
|
|
echo "${DOCKER_APT}";
|
2018-11-18 19:30:41 +00:00
|
|
|
|
|
|
|
# Determine latest Docker Compose version
|
|
|
|
- set -e;
|
|
|
|
if [ "${S2}" = "COMPOSE" ]; then
|
|
|
|
COMPOSE_VERSION="$( curl -sS https://raw.githubusercontent.com/cytopia/tools/master/docker-compose-versions | sh -s "${V2}" )";
|
|
|
|
else
|
|
|
|
COMPOSE_VERSION="$( curl -sS https://raw.githubusercontent.com/cytopia/tools/master/docker-compose-versions | sh -s 1 )";
|
|
|
|
fi;
|
|
|
|
echo "${COMPOSE_VERSION}";
|
|
|
|
|
|
|
|
# Install Docker and Docker Compose
|
|
|
|
- set -e;
|
|
|
|
if [ "${S1}" != "DOCUMENTATION" ]; then
|
|
|
|
max=100; i=0; while [ $i -lt $max ]; do
|
|
|
|
if sudo apt-get update -qq; then break; else i=$((i+1)); fi;
|
2018-06-04 08:00:47 +00:00
|
|
|
done;
|
2018-11-18 19:30:41 +00:00
|
|
|
max=100; i=0; while [ $i -lt $max ]; do
|
|
|
|
if sudo apt-get -y -qq -o Dpkg::Options::="--force-confnew" install docker-ce${DOCKER_APT}; then break; else i=$((i+1)); fi;
|
2018-06-04 08:00:47 +00:00
|
|
|
done;
|
2018-11-18 19:30:41 +00:00
|
|
|
max=100; i=0; while [ $i -lt $max ]; do
|
|
|
|
if curl -L --retry 100 --retry-max-time 0 https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose; then break; else i=$((i+1)); fi;
|
2018-06-04 08:00:47 +00:00
|
|
|
done;
|
|
|
|
chmod +x docker-compose;
|
|
|
|
sudo mv -f docker-compose /usr/local/bin;
|
|
|
|
fi
|
|
|
|
|
2018-06-03 18:45:01 +00:00
|
|
|
|
2017-05-17 06:37:36 +00:00
|
|
|
###
|
|
|
|
### Before Script
|
|
|
|
###
|
2017-04-19 17:48:44 +00:00
|
|
|
before_script:
|
|
|
|
# Disable services enabled by default
|
|
|
|
# http://docs.travis-ci.com/user/database-setup/#MySQL
|
2017-05-17 06:45:31 +00:00
|
|
|
- sudo service mysql stop || true
|
2017-04-19 18:09:42 +00:00
|
|
|
- sudo service postgresql stop || true
|
2017-05-17 06:45:31 +00:00
|
|
|
- sudo service memcached stop || true
|
2017-05-23 20:56:39 +00:00
|
|
|
- sudo service redis stop || true
|
|
|
|
- sudo service mongodb stop || true
|
2018-11-18 19:30:41 +00:00
|
|
|
- netstat -tuln
|
|
|
|
|
|
|
|
# Ensure Docker is restarted
|
|
|
|
- sudo service docker stop || true
|
|
|
|
- sudo service docker start || true
|
2017-04-19 17:48:44 +00:00
|
|
|
|
2018-06-04 08:00:47 +00:00
|
|
|
# Show Python/pip
|
|
|
|
- if [ "${S1}" = "DOCUMENTATION" ]; then
|
|
|
|
pip freeze;
|
|
|
|
pip --version;
|
|
|
|
python --version;
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Show Docker/Docker Compose
|
|
|
|
- if [ "${S1}" != "DOCUMENTATION" ]; then
|
|
|
|
docker --version;
|
|
|
|
docker-compose --version;
|
|
|
|
fi
|
|
|
|
|
2017-04-19 17:48:44 +00:00
|
|
|
|
2016-11-15 19:45:57 +00:00
|
|
|
###
|
|
|
|
### Test
|
|
|
|
###
|
|
|
|
script:
|
2018-06-03 18:45:01 +00:00
|
|
|
- if [ "${S1}" = "DOCUMENTATION" ]; then
|
|
|
|
cd docs/;
|
2018-06-30 15:36:11 +00:00
|
|
|
make build;
|
|
|
|
make linkcheck;
|
2018-07-25 06:56:45 +00:00
|
|
|
make linkcheck2;
|
2018-08-11 23:21:37 +00:00
|
|
|
elif [ "${S1}" = "UPDATE" ]; then
|
|
|
|
./update-docker.sh "${V1}";
|
2018-11-18 19:30:41 +00:00
|
|
|
elif [ "${S1}" = "DOCKER" ]; then
|
2018-12-09 00:55:12 +00:00
|
|
|
cd .tests/;
|
|
|
|
make init;
|
|
|
|
make start;
|
|
|
|
make info;
|
|
|
|
make test;
|
2018-06-03 18:45:01 +00:00
|
|
|
else
|
2018-12-09 00:55:12 +00:00
|
|
|
cd .tests/;
|
|
|
|
make init;
|
|
|
|
make configure SRV="${S1}_SERVER" VER="${V1}";
|
|
|
|
make configure SRV="${S2}_SERVER" VER="${V2}";
|
|
|
|
make start;
|
|
|
|
make info;
|
|
|
|
make test;
|
2018-06-03 18:45:01 +00:00
|
|
|
fi
|