mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-10 11:01:14 +00:00
137 lines
4.3 KiB
YAML
137 lines
4.3 KiB
YAML
---
|
|
|
|
###
|
|
### Travis settings
|
|
###
|
|
sudo: required
|
|
language: minimal
|
|
services:
|
|
- docker
|
|
|
|
|
|
###
|
|
### Build Matrix
|
|
###
|
|
env:
|
|
global:
|
|
- IMAGE: devilbox/php-fpm
|
|
matrix:
|
|
- PHP=5.2
|
|
- PHP=5.3
|
|
- PHP=5.4
|
|
- PHP=5.5
|
|
- PHP=5.6
|
|
- PHP=7.0
|
|
- PHP=7.1
|
|
- PHP=7.2
|
|
- PHP=7.3
|
|
- PHP=7.4
|
|
- PHP=8.0
|
|
- PHP=8.1
|
|
|
|
|
|
###
|
|
### Install requirements
|
|
###
|
|
install:
|
|
- docker version
|
|
|
|
# Disable services enabled by default
|
|
# http://docs.travis-ci.com/user/database-setup/#MySQL
|
|
- sudo /etc/init.d/httpd stop || true
|
|
- sudo /etc/init.d/memcached stop || true
|
|
- sudo /etc/init.d/mongodb stop || true
|
|
- sudo /etc/init.d/mysql stop || true
|
|
- sudo /etc/init.d/nginx stop || true
|
|
- sudo /etc/init.d/postgresql stop || true
|
|
- sudo /etc/init.d/redis stop || true
|
|
|
|
- sudo service httpd stop || true
|
|
- sudo service memcached stop || true
|
|
- sudo service mongodb stop || true
|
|
- sudo service mysql stop || true
|
|
- sudo service nginx stop || true
|
|
- sudo service postgresql stop || true
|
|
- sudo service redis stop || true
|
|
- netstat -tulpn
|
|
|
|
- retry() {
|
|
for ((n=0; n<10; n++)); do
|
|
echo "[${n}] ${*}";
|
|
if eval "${*}"; then
|
|
return 0;
|
|
fi;
|
|
done;
|
|
return 1;
|
|
}
|
|
|
|
|
|
###
|
|
### Check generation changes, build and test
|
|
###
|
|
before_script:
|
|
# Build (multiple tries due to network outages)
|
|
- retry make build-base VERSION=${PHP}
|
|
#- retry make test-base VERSION=${PHP}
|
|
|
|
- retry make build-mods VERSION=${PHP}
|
|
#- retry make test-mods VERSION=${PHP}
|
|
|
|
- retry make build-prod VERSION=${PHP}
|
|
#- retry make test-prod VERSION=${PHP}
|
|
|
|
- retry make build-work VERSION=${PHP}
|
|
- retry make test-work VERSION=${PHP}
|
|
|
|
|
|
###
|
|
### Push to Dockerhub
|
|
###
|
|
script:
|
|
- if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
|
|
retry make login USERNAME="${DOCKER_USERNAME}" PASSWORD="${DOCKER_PASSWORD}";
|
|
if [ "${TRAVIS_BRANCH}" == "master" ]; then
|
|
echo "Pushing latest";
|
|
retry make push TAG="${PHP}-base" &&
|
|
retry make push TAG="${PHP}-mods" &&
|
|
retry make push TAG="${PHP}-prod" &&
|
|
retry make push TAG="${PHP}-work";
|
|
elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
|
|
echo "Pushing branch ${TRAVIS_BRANCH}";
|
|
retry make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${TRAVIS_BRANCH}" &&
|
|
retry make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${TRAVIS_BRANCH}" &&
|
|
retry make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${TRAVIS_BRANCH}" &&
|
|
retry make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${TRAVIS_BRANCH}" &&
|
|
retry make push TAG="${PHP}-base-${TRAVIS_BRANCH}" &&
|
|
retry make push TAG="${PHP}-mods-${TRAVIS_BRANCH}" &&
|
|
retry make push TAG="${PHP}-prod-${TRAVIS_BRANCH}" &&
|
|
retry make push TAG="${PHP}-work-${TRAVIS_BRANCH}";
|
|
elif [ -n "${TRAVIS_TAG}" ]; then
|
|
echo "Pushing tag ${TRAVIS_TAG}";
|
|
retry make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${TRAVIS_TAG}" &&
|
|
retry make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${TRAVIS_TAG}" &&
|
|
retry make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${TRAVIS_TAG}" &&
|
|
retry make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${TRAVIS_TAG}" &&
|
|
retry make push TAG="${PHP}-base-${TRAVIS_TAG}" &&
|
|
retry make push TAG="${PHP}-mods-${TRAVIS_TAG}" &&
|
|
retry make push TAG="${PHP}-prod-${TRAVIS_TAG}" &&
|
|
retry make push TAG="${PHP}-work-${TRAVIS_TAG}";
|
|
elif [ "${TRAVIS_EVENT_TYPE}" = "cron" ]; then
|
|
if MY_TAG="$( git describe --exact-match "$(git rev-parse HEAD)" 2>/dev/null )"; then
|
|
echo "Pushing cron tag ${MY_TAG}";
|
|
retry make tag OLD_TAG="${PHP}-base" NEW_TAG="${PHP}-base-${MY_TAG}" &&
|
|
retry make tag OLD_TAG="${PHP}-mods" NEW_TAG="${PHP}-mods-${MY_TAG}" &&
|
|
retry make tag OLD_TAG="${PHP}-prod" NEW_TAG="${PHP}-prod-${MY_TAG}" &&
|
|
retry make tag OLD_TAG="${PHP}-work" NEW_TAG="${PHP}-work-${MY_TAG}" &&
|
|
retry make push TAG="${PHP}-base-${MY_TAG}" &&
|
|
retry make push TAG="${PHP}-mods-${MY_TAG}" &&
|
|
retry make push TAG="${PHP}-prod-${MY_TAG}" &&
|
|
retry make push TAG="${PHP}-work-${MY_TAG}";
|
|
fi
|
|
else
|
|
echo "Skipping push to dockerhub on normal branches";
|
|
fi
|
|
else
|
|
echo "Skipping push to dockerhub on PR";
|
|
fi
|