Files
docker-php-fpm/.travis.yml
2018-02-23 08:53:30 +01:00

294 lines
13 KiB
YAML

---
sudo: required
language: python
services:
- docker
env:
global:
- IMAGE: devilbox/php-fpm
# travis encrypt DOCKER_USERNAME=user
# travis encrypt DOCKER_PASSWORD=pass
# Must be regenerated when repository name/owner changes
# DOCKER_USERNAME
- secure: "Y7xt3qZW9Zwrsgdd/aCf8ZqA7I039506ZDf/u/WVzGwNHta5YJJ7XYy8XG7XugyqGGXRVpfBiaqmDH4xsPLXyHXdOt2G38GXZHZXIgJOiEJ6aUfpdUxyeu8XIXkD2MDMmc3Kb27Yub/OadxRMLWEflzRnSXXs3KJ8TsbPHh0yRWDMsmHYOYl16gDGUX1izLkEx4J+9iA3+JwIFZk8by/OUuIIQ93bSNORpwHT8A1j7Y1kh8kYkPZ6nRxWO8xrc2wI1Rbp0X+ivLnOotxDZo53UI/0KroeSckDpoWfoz+B7mP+M+5B6kGlI2pKDNQB/ErYvnya6PdtFSS9skbvepR4tBhUOZDDY7NMRg9m3w0b9T1no+g3A4LBGXy6+OZZoiYAGy9LvqMhFkINqbBhRBX+mZhtG0pNXunfcu5dk81Ni/XpXDiy9JU98jItwsRj4SeaPfSt0LUNNXMS/fEwZyTy6TihN1CM3krJpV30Ic5rN64FRnrRjUuNU4lJ/W36yUhM29gb13ahh+f7sDsYoCzMwDM9HFe0YLb3ar3mW1lb3FuUugU2f2EupgCPY60X2XrY9aSgCfbdiVsA84dbLtRfHTPG7UbEcJW5RH8HS+9qVZBK+AcPqon9jbOJRVh7q99YW+R8X/XeyYpz7amacVmRus80+toZ16bbU7D2Qgjdek="
# DOCKER_PASSWORD
- secure: "ZRrVOVOkSCS2UxEi1HNF1iKefK4sDT/sPRl1HxMQjLnRRaAMdG0aRnBwQf2YAM2qzhCfN85qt6zZtC4awc2mHiZ88JrAZxBjK6xj4BwOyLbDuzpBsKXnx8Nix+wyYYKSjsC3LOYrsUe+4rvkw3tVvVaX8G2llojwdksF34VDmmHBmzCG/Bsexk7UqC+qw0PZm7BtctQO+IL0btmMDijRDElxfR+AuPvf9JdkhYzw9TOO7Jqd53NssNVGyL+XSV0dfGn8PkZTp1e8D+28pLK4oGVog+Wk7Cq94hSGjk5AkWKvL5441rupG1AA8K3njeDNMKdov4o+dmnkAH7Jh8tjShMhNhoxHce3IzpczjhoE1EyYQcyPf1qdfhV35Xv096iWX5809pp1MZF2oE5eism8JaU9NpGClryVbKVKtup8ko9/tCqz01Czq5Vue40feMkGtdePulg59OhyyPLYldsObw8QlZydkrmgVZe6b+GyybeiHraTfDq4pvTgUrC4Cmm5J3IB5Ig1THEiYKHfRJ5hSSMDDODeBXc8Xh6mFssEVshNx/jbUQWuAVYQFw/GIquVHxr6btbevrWIoD+zmqcc0L98u9pYH8w7b+gMgVJNCC4QQz2NCGGWw9l9/TmLrKJgeXbG18n8D314le1zuna6/VfH9pXIlbNO4hgz5NLHJk="
matrix:
- PHP=5.5
- PHP=5.5
- PHP=5.6
- PHP=7.0
- PHP=7.1
- PHP=7.2
#stages:
# - generate
# - PHP 5.4
# - PHP 5.5
# - PHP 5.6
# - PHP 7.0
# - PHP 7.1
# - PHP 7.2
# TODO: No need for stages anymore, use simple build matrix and don't repease the code!!
install:
# Get newer docker version
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get update; then break; else i=$((i+1)); fi done
- max=100; i=0; while [ $i -lt $max ]; do if sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce; then break; else i=$((i+1)); fi done
- docker version
before_script:
# Build (multiple tries due to network outages)
- max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
- max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
- max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
- max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
script:
# Test
- true
after_success:
# Push
- if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" &&
if [ "${TRAVIS_BRANCH}" == "master" ]; then
docker push "${IMAGE}:${PHP}-base";
docker push "${IMAGE}:${PHP}-mods";
docker push "${IMAGE}:${PHP}-prod";
docker push "${IMAGE}:${PHP}-work";
elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}" &&
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}" &&
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}" &&
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" &&
docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}";
docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}";
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}";
docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}";
elif [ -n "${TRAVIS_TAG}" ]; then
docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_TAG}" &&
docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}" &&
docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}" &&
docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" &&
docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}";
docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}";
docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}";
docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}";
else
echo "Skipping push to dockerhub on normal branches";
fi
else
echo "Skipping push to dockerhub on PR";
fi
#
#
#
#
#
#
#
#
#
#jobs:
# include:
# ############################################################
# # TEST
# ############################################################
# - stage: generate
# env: All
# install: skip
# before_script: skip
# script:
# # Regenerate Dockerfiles and make sure nothing has changed (every stage)
# - pip install ansible
# - make generate
# - git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
# ############################################################
# # BUILD BASE IMAGE
# ############################################################
# - stage: PHP 5.4
# env: PHP=5.4
# before_script:
# # Build (multiple tries due to network outages)
# - max=100; i=0; while [ $i -lt $max ]; do if make build-base-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
# - max=100; i=0; while [ $i -lt $max ]; do if make build-mods-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
# - max=100; i=0; while [ $i -lt $max ]; do if make build-prod-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
# - max=100; i=0; while [ $i -lt $max ]; do if make build-work-${PHP//.}; then break; else i=$((i+1)); fi; done; if [ $i -gt 98 ]; then false; fi
# script:
# # Test
# - true
# after_success:
# # Push
# - if [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
# docker login --username "${DOCKER_USERNAME}" --password "${DOCKER_PASSWORD}" &&
# if [ "${TRAVIS_BRANCH}" == "master" ]; then
# docker push "${IMAGE}:${PHP}-base";
# docker push "${IMAGE}:${PHP}-mods";
# docker push "${IMAGE}:${PHP}-prod";
# docker push "${IMAGE}:${PHP}-work";
# elif [[ ${TRAVIS_BRANCH} =~ ^(release-[.0-9]+)$ ]]; then
# docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}" &&
# docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}" &&
# docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}" &&
# docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}" &&
# docker push "${IMAGE}:${PHP}-base-${TRAVIS_BRANCH}";
# docker push "${IMAGE}:${PHP}-mods-${TRAVIS_BRANCH}";
# docker push "${IMAGE}:${PHP}-prod-${TRAVIS_BRANCH}";
# docker push "${IMAGE}:${PHP}-work-${TRAVIS_BRANCH}";
# elif [ -n "${TRAVIS_TAG}" ]; then
# docker tag "${IMAGE}:${PHP}-base" "${IMAGE}:${PHP}-base-${TRAVIS_TAG}" &&
# docker tag "${IMAGE}:${PHP}-mods" "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}" &&
# docker tag "${IMAGE}:${PHP}-prod" "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}" &&
# docker tag "${IMAGE}:${PHP}-work" "${IMAGE}:${PHP}-work-${TRAVIS_TAG}" &&
# docker push "${IMAGE}:${PHP}-base-${TRAVIS_TAG}";
# docker push "${IMAGE}:${PHP}-mods-${TRAVIS_TAG}";
# docker push "${IMAGE}:${PHP}-prod-${TRAVIS_TAG}";
# docker push "${IMAGE}:${PHP}-work-${TRAVIS_TAG}";
# else
# echo "Skipping push to dockerhub on normal branches";
# fi
# else
# echo "Skipping push to dockerhub on PR";
# fi
# - stage: Build base image
# env: PHP=5.5 t=base
# before_script:
# # Build
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi; done
# script:
# # Test
# - result=1; false
# after_success:
# # Push
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}";
#
# - stage: Build base image
# env: PHP=5.6 t=base
# script:
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi
# - if [ $i -gt 98 ]; then false; fi
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}"
#
# - stage: Build base image
# env: PHP=7.0 t=base
# script:
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi
# - if [ $i -gt 98 ]; then false; fi
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}"
#
# - stage: Build base image
# env: PHP=7.1 t=base
# script:
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi
# - if [ $i -gt 98 ]; then false; fi
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}"
#
# - stage: Build base image
# env: PHP=7.2 t=base
# script:
# - max=100; i=0; while [ $i -lt $max ]; do if make build-${t}-${PHP//.}; then break; else i=$((i+1)); fi
# - if [ $i -gt 98 ]; then false; fi
# - docker login --username "$DOCKER_USERNAME" --password "$DOCKER_PASSWORD"
# - docker push "${IMAGE}:${PHP}-${t}"
# ############################################################
# # BUILD MODS IMAGE
# ############################################################
# - stage: Build mods image
# env: PHP-5.4
# script:
# - make build-mods-54
#
# - stage: Build mods image
# env: PHP-5.5
# script:
# - make build-mods-55
#
# - stage: Build mods image
# env: PHP-5.6
# script:
# - make build-mods-56
#
# - stage: Build mods image
# env: PHP-7.0
# script:
# - make build-mods-70
#
# - stage: Build mods image
# env: PHP-7.1
# script:
# - make build-mods-71
#
# - stage: Build mods image
# env: PHP-7.2
# script:
# - make build-mods-72
# ############################################################
# # BUILD PROD IMAGE
# ############################################################
# - stage: Build prod image
# env: PHP-5.4
# script:
# - make build-prod-5.4
#
# - stage: Build prod image
# env: PHP-5.5
# script:
# - make build-prod-5.5
#
# - stage: Build prod image
# env: PHP-5.6
# script:
# - make build-prod-5.6
#
# - stage: Build prod image
# env: PHP-7.0
# script:
# - make build-prod-7.0
#
# - stage: Build prod image
# env: PHP-7.1
# script:
# - make build-prod-7.1
#
# - stage: Build prod image
# env: PHP-7.2
# script:
# - make build-prod-7.2
# ############################################################
# # BUILD WORK IMAGE
# ############################################################
# - stage: Build work image
# env: PHP-5.4
# script:
# - make build-work-5.4
#
# - stage: Build work image
# env: PHP-5.5
# script:
# - make build-work-5.5
#
# - stage: Build work image
# env: PHP-5.6
# script:
# - make build-work-5.6
#
# - stage: Build work image
# env: PHP-7.0
# script:
# - make build-work-7.0
#
# - stage: Build work image
# env: PHP-7.1
# script:
# - make build-work-7.1
#
# - stage: Build work image
# env: PHP-7.2
# script:
# - make build-work-7.2