From 29272e1a99eefb39f597855daf5c92b931f29c6b Mon Sep 17 00:00:00 2001 From: addshore Date: Mon, 21 May 2018 21:13:04 +0200 Subject: [PATCH] Rough docker CI draft --- .gitignore | 1 + build/travis/install-mediawiki.sh | 29 ----------------------------- build/travis/run-webserver.sh | 25 ------------------------- composer.json | 12 ++++++++++++ docker-compose-test.yml | 13 +++++++++++++ 5 files changed, 26 insertions(+), 54 deletions(-) delete mode 100644 build/travis/install-mediawiki.sh delete mode 100644 build/travis/run-webserver.sh create mode 100644 docker-compose-test.yml diff --git a/.gitignore b/.gitignore index 9c16bff..b77efb6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ composer.lock test.php docs/_build phpunit.xml +.env \ No newline at end of file diff --git a/build/travis/install-mediawiki.sh b/build/travis/install-mediawiki.sh deleted file mode 100644 index 59d29ba..0000000 --- a/build/travis/install-mediawiki.sh +++ /dev/null @@ -1,29 +0,0 @@ -#! /bin/bash - -set -x - -originalDirectory=$(pwd) - -if [[ $TRAVIS_PHP_VERSION == *"hhvm"* ]] -then - PHPINI=/etc/hhvm/php.ini - echo "hhvm.enable_zend_compat = true" >> $PHPINI -fi - -mkdir ./../web -cd ./../web - -wget https://github.com/wikimedia/mediawiki/archive/$MW.tar.gz -tar -zxf $MW.tar.gz -mv mediawiki-$MW w -ln -s ./w ./wiki - -cd w - -composer self-update -composer install - -mysql -e 'CREATE DATABASE mediawiki;' -php maintenance/install.php --dbtype mysql --dbuser root --dbname mediawiki --dbpath $(pwd) --pass CIPass TravisWiki CIUser - -cd $originalDirectory diff --git a/build/travis/run-webserver.sh b/build/travis/run-webserver.sh deleted file mode 100644 index 2412031..0000000 --- a/build/travis/run-webserver.sh +++ /dev/null @@ -1,25 +0,0 @@ -#! /bin/bash - -set -x - -# HHVM doesn't have a built in web server -# We can't guarantee any single PHP version is always installed on Travis hosts -# So list the versions and try to pick the latest PHP version -# Also the web server on 7.1 seems to have issues, so don't use that? -if [[ $TRAVIS_PHP_VERSION == *"hhvm"* ]] || [[ $TRAVIS_PHP_VERSION == *"7.1"* ]] -then - WEBSERVERPHPVERSION=`phpenv versions | grep -v system | grep -v hhvm | grep -v 7.1 | tail -n 1 | xargs` - phpenv global $WEBSERVERPHPVERSION - php --version -fi - -# Run a web server for MediaWiki and wait until it is up -nohup php -S 0.0.0.0:8080 -t ./../web > /dev/null 2>&1 & -until curl -s localhost:8080; do true; done > /dev/null 2>&1 - -# Switch back to the actual php version requested for this build if needed -if [ -v $WEBSERVERPHPVERSION ] -then - phpenv global $TRAVIS_PHP_VERSION - php --version -fi diff --git a/composer.json b/composer.json index 2c19d3f..cc311c5 100644 --- a/composer.json +++ b/composer.json @@ -32,6 +32,18 @@ "@lint", "@phpcs", "@phpunit" + ], + "test-docker-compose" : "docker-compose --file docker-compose-test.yml", + "test-docker": [ + "printf \"PHP_TAG=5.6-cli-alpine\\nMW_TAG=1.30\\n\" > ./.env", + "cat ./.env", + "docker-compose --file docker-compose-test.yml up -d", + "docker-compose --file docker-compose-test.yml exec -T mediawiki php //var/www/html/maintenance/install.php --dbtype sqlite --dbuser db --dbname mw --dbpath //var/www/data --pass adminpass TestWiki Adminuser", + "docker-compose --file docker-compose-test.yml run -T addwiki /code/vendor/bin/parallel-lint . --exclude vendor", + "docker-compose --file docker-compose-test.yml run -T addwiki /code/vendor/bin/phpcs -ps", + "docker-compose --file docker-compose-test.yml run -T addwiki /code/vendor/bin/phpunit", + "docker-compose --file docker-compose-test.yml down", + "rm ./.env" ] }, "autoload": { diff --git a/docker-compose-test.yml b/docker-compose-test.yml new file mode 100644 index 0000000..813b6a0 --- /dev/null +++ b/docker-compose-test.yml @@ -0,0 +1,13 @@ +version: '3' +services: + addwiki: + image: php:${PHP_TAG} + working_dir: /code + depends_on: + - mediawiki + volumes: + - ./:/code + mediawiki: + image: mediawiki:${MW_TAG} + ports: + - 8080:80 \ No newline at end of file