diff --git a/Dockerfile b/Dockerfile index b5413a3..1e8dbdb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,8 @@ FROM php:7.2.0-cli -WORKDIR /opt/php +WORKDIR /app RUN apt-get update \ - && apt-get install -y zlib1g-dev wget git-core \ - && docker-php-ext-install zip -ADD . /opt/php -CMD [ "./docker/test_runner.sh" ] + && apt-get install -y zlib1g-dev wget git-core python-pip \ + && docker-php-ext-install zip \ + && pip install Sphinx +ADD . /app +CMD [ "make", "cs", "test" ] diff --git a/Makefile b/Makefile index c3841a2..ff8edc0 100644 --- a/Makefile +++ b/Makefile @@ -191,14 +191,11 @@ pseudoxml: @echo @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." -composer.phar: - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" - php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" - php composer-setup.php - php -r "unlink('composer-setup.php');" - install: vendor +composer.phar: + docker/install-composer.sh + vendor: composer.phar php composer.phar install diff --git a/docker-compose.yml b/docker-compose.yml index 1242ae2..af6b1cc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,12 +5,4 @@ services: context: . dockerfile: Dockerfile volumes: - - .:/opt/php - command: ["/opt/php/docker/test_runner.sh"] - composer: - image: composer:latest - working_dir: /app - volumes: - - .:/app - command: - - install + - .:/app diff --git a/docker/install-composer.sh b/docker/install-composer.sh new file mode 100755 index 0000000..d39d20a --- /dev/null +++ b/docker/install-composer.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)" +php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" +ACTUAL_SIGNATURE="$(php -r "echo hash_file('SHA384', 'composer-setup.php');")" + +if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ] +then + >&2 echo 'ERROR: Invalid installer signature' + rm composer-setup.php + exit 1 +fi + +php composer-setup.php --quiet +RESULT=$? +rm composer-setup.php +exit $RESULT diff --git a/docker/test_runner.sh b/docker/test_runner.sh deleted file mode 100755 index 6ce56da..0000000 --- a/docker/test_runner.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -echo "Installing composer..." -EXPECTED_SIGNATURE=$(wget -q -O - https://composer.github.io/installer.sig) -php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" -ACTUAL_SIGNATURE=$(php -r "echo hash_file('SHA384', 'composer-setup.php');") - -if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ] -then - >&2 echo 'ERROR: Invalid installer signature' - rm composer-setup.php - exit 1 -fi - -php composer-setup.php --quiet -rm composer-setup.php - -echo "Downloading dependencies using composer..." -php composer.phar install --prefer-dist --no-interaction - -echo "Running tests..." -if ./vendor/bin/phpunit; then - echo "Tests passed successfully!" - exit 0 -else - echo "Tests failed :(" - exit 1 -fi