├── .gitignore ├── docker └── php │ ├── versions │ └── .gitignore │ ├── template │ ├── bin │ │ ├── apt-install │ │ ├── apt-purge │ │ └── docker-php-pecl-install │ └── Dockerfile │ └── buildone.sh ├── auth.json ├── composer.json ├── README.md └── .travis.yml /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | 3 | /vendor/ 4 | -------------------------------------------------------------------------------- /docker/php/versions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /auth.json: -------------------------------------------------------------------------------- 1 | { 2 | "github-oauth": { 3 | "github.com": "token" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /docker/php/template/bin/apt-install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | apt-get update 5 | apt-get install "$@" --no-install-recommends -y 6 | apt-get clean 7 | 8 | rm -rf /var/lib/apt/lists/* 9 | -------------------------------------------------------------------------------- /docker/php/template/bin/apt-purge: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | exec apt-get purge -y --auto-remove \ 3 | -o APT::AutoRemove::RecommendsImportant=false \ 4 | -o APT::AutoRemove::SuggestsImportant=false \ 5 | "$@" 6 | -------------------------------------------------------------------------------- /docker/php/template/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:{{php_version}}-cli 2 | COPY bin/* /usr/local/bin/ 3 | RUN apt-install libssl-dev && \ 4 | docker-php-pecl-install mongo{{mongo_version}} xdebug{{xdebug_version}} && \ 5 | apt-get purge -y --auto-remove libssl-dev 6 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "leodido/travis-docker-ex", 3 | "description": "", 4 | "license": "MIT", 5 | "authors": [ 6 | { 7 | "name": "Leonardo Di Donato", 8 | "email": "leodidonato@gmail.com" 9 | } 10 | ], 11 | "require": { 12 | "phpunit/phpunit": "~4.7" 13 | }, 14 | "minimum-stability": "stable" 15 | } 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | secret travis docker 2 | -------------------- 3 | 4 | [![Travis](https://img.shields.io/travis/leodido/secret-travis-docker/master.svg?style=flat-square)](https://travis-ci.org/leodido/secret-travis-docker) 5 | 6 | * secret travis feature 7 | * docker 8 | * docker composer with github oauth 9 | 10 | --- 11 | 12 | [![Analytics](https://ga-beacon.appspot.com/UA-49657176-1/secret-travis-docker?flat)](https://github.com/igrigorik/ga-beacon) 13 | -------------------------------------------------------------------------------- /docker/php/template/bin/docker-php-pecl-install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | usage() { 5 | echo "usage: $0 [channel/] ..." 6 | echo " ie: $0 uploadprogress oauth-1.2.3" 7 | } 8 | 9 | if [ $# -eq 0 ]; then 10 | usage >&2 11 | exit 1 12 | fi 13 | 14 | pecl install "$@" 15 | 16 | while [ $# -gt 0 ]; do 17 | ext="$1" 18 | ext=$(echo "$ext" | cut -d- -f1) 19 | ext=$(echo "$ext" | cut -d\/ -f2) 20 | shift 21 | 22 | for module in $(find /usr/local/lib/php/extensions -name "$ext.so"); do 23 | ini="/usr/local/etc/php/conf.d/docker-php-pecl-$ext.ini" 24 | if grep -q zend_extension_entry "$module"; then 25 | # https://wiki.php.net/internals/extensions#loading_zend_extensions 26 | line="zend_extension=$(basename "$module")" 27 | else 28 | line="extension=$(basename "$module")" 29 | fi 30 | if ! grep -q "$line" "$ini" 2>/dev/null; then 31 | echo "$line" >> "$ini" 32 | fi 33 | done 34 | done 35 | 36 | rm -rf /tmp/* 37 | -------------------------------------------------------------------------------- /docker/php/buildone.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # 3 | # @author leodido - git.io/leodido - @leodido 4 | 5 | set -e 6 | 7 | cd "$(dirname "$(readlink -f "${BASH_SOURCE}")")" 8 | 9 | main() { 10 | local PHP_VERSION=${1:-${PHP_VERSION}} 11 | if [[ -z "${PHP_VERSION}" ]]; then 12 | echo -e "Please specifiy a php version ...\nExit." 13 | exit 1 14 | fi 15 | local TEMP=versions/"phpcli${PHP_VERSION}" 16 | mkdir -p ${TEMP} 17 | local DEST="${TEMP}${MONGO_VERSION:+-mongo${MONGO_VERSION}}${XDEBUG_VERSION:+-xdebug${XDEBUG_VERSION}}" 18 | local SUBST="s/{{php_version}}/${PHP_VERSION}/g;" 19 | [[ -z "${MONGO_VERSION+x}" ]] && SUBST=${SUBST}" s/{{mongo_version}}//g;" || SUBST=${SUBST}" s/{{mongo_version}}/-${MONGO_VERSION}/g;" 20 | [[ -z "${XDEBUG_VERSION+x}" ]] && SUBST=${SUBST}" s/{{xdebug_version}}//g;" || SUBST=${SUBST}" s/{{xdebug_version}}/-${XDEBUG_VERSION}/g;" 21 | 22 | echo "Updating ${PHP_VERSION} ..." 23 | ( 24 | set -x 25 | rm -rf "${TEMP}"/* 26 | cp -r template/* "${TEMP}"/ 27 | sed -i -e "$SUBST" ${TEMP}/Dockerfile 28 | [[ ${TEMP} != ${DEST} ]] && mv ${TEMP} ${DEST} 29 | ) 30 | } 31 | 32 | main "$@" 33 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: bash 2 | sudo: 9000 3 | env: 4 | matrix: 5 | - PHP_VERSION=5.5 MONGO_VERSION=1.6.0 MONGODB_VERSION=2.4 6 | - PHP_VERSION=5.5 MONGO_VERSION=1.5.0 MONGODB_VERSION=2.6 7 | global: 8 | secure: Cs00ZzSEhkjPxkzHxBGS8mlZSOx3efYmKT24uVbx3f6zCgqrI7qS80GNgbrGUdSQ0Ofw6Q7f02hP11g5Dw8LtdhSePEapqpeGSW0eiheUiyg3zNIlksFYKs7N11XVF6bc5MtgyaGWDarpxWcnndFIdc59cg/rBFqEcL7jZi7Tnp4JBY1n6KieHDBOg9o+qVm42JaNcoNDOTw5Q/IUUzAAVmO3LEP6btv5YK1Zw2spbrqy5ChVcoifH/rKsDdN6DhPu93sBV7VpQk3rS68mnoKEq1VDh6cB9100zwfZbH4ZUKdaWovK/Ackoq3oGJgbrEzxIb2aNmAYyjstGxSLFbyNBvBw4G1C9eAPDBuRiaDQCPO0Nur4d9kGifUs+4MSdXxYzKUl4e2GiDNggDLOyJur9uTWrvp10/IB2p4o4z/GxTaIEZyWTxkZw/3kRJ5k5tVGA3Gu1pchVBDrvuGPnfvGHK7ls6bpWXooczhA2fLx6cUgbmAKiAwdIMYejWc9htZQRuGz0BDZBgYTK7Wu91lY/TIkfWyD69m7R6J9Q3Zn6BpwZLtub2Ru//Z+O5SZmXyJmiWojH/Jf41rykNe19ZwGnKk3DylEEirWF2j/IdTHSTxPjtoHv43qanx0jnDnq6QOhCtHFTMHBn2U23IP91hoLzSuPVWpXTwlR3J0pwVI= 9 | before_script: 10 | - "./docker/php/buildone.sh" 11 | - IMG_NAME="phpcli${PHP_VERSION}${MONGO_VERSION:+-mongo${MONGO_VERSION}}${XDEBUG_VERSION:+-xdebug${XDEBUG_VERSION}}" 12 | - docker build -t "${IMG_NAME}" "docker/php/versions/${IMG_NAME}" 13 | - sed -i -e "s/token/${GH_TOKEN}/g" auth.json 14 | - docker run --rm -v ${PWD}:/app composer/composer install --ignore-platform-reqs 15 | script: 16 | - docker run --rm -v ${PWD} "${IMG_NAME}" php -r 'print_r(scandir(getcwd()));' 17 | after_script: 18 | - docker images 19 | - docker info 20 | --------------------------------------------------------------------------------