diff --git a/.gitattributes b/.gitattributes index 5a93a58c..ca0450d8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,8 +10,8 @@ /demo export-ignore /docs export-ignore /utilities export-ignore +/docker-compose.yml export-ignore /.github export-ignore - /.gitattributes export-ignore /.gitignore export-ignore /make-release.sh export-ignore diff --git a/.gitignore b/.gitignore index 5bd891e4..67f0dc51 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ lexer/*.php lexer/*.php.bak lexer/*.out -utilies/*.php # Dev phpunit* diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..8ba90328 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +version: "2" +services: + base: + build: + context: . + volumes: + - .:/app + working_dir: /app + entrypoint: sh ./utilities/testrunners/run-test.sh + php71: + extends: + service: base + build: + dockerfile: ./utilities/testrunners/php71/Dockerfile + php72: + extends: + service: base + build: + dockerfile: ./utilities/testrunners/php72/Dockerfile + php73: + extends: + service: base + build: + dockerfile: ./utilities/testrunners/php73/Dockerfile + php74: + extends: + service: base + build: + dockerfile: ./utilities/testrunners/php74/Dockerfile + php80: + extends: + service: base + build: + dockerfile: ./utilities/testrunners/php80/Dockerfile + php81: + extends: + service: base + build: + dockerfile: ./utilities/testrunners/php81/Dockerfile diff --git a/utilities/testrunners/php71/Dockerfile b/utilities/testrunners/php71/Dockerfile new file mode 100644 index 00000000..2ae6c1ae --- /dev/null +++ b/utilities/testrunners/php71/Dockerfile @@ -0,0 +1,10 @@ +FROM php:7.1-cli + +## Basic utilities +RUN apt-get update -yqq && apt-get install -y curl apt-utils git zip unzip + +## Composer +COPY ./utilities/testrunners/shared/install-composer.sh /root/install-composer.sh +WORKDIR /root +RUN sh ./install-composer.sh +RUN mv ./composer.phar /usr/local/bin/composer diff --git a/utilities/testrunners/php72/Dockerfile b/utilities/testrunners/php72/Dockerfile new file mode 100644 index 00000000..25f1688d --- /dev/null +++ b/utilities/testrunners/php72/Dockerfile @@ -0,0 +1,10 @@ +FROM php:7.2-cli + +## Basic utilities +RUN apt-get update -yqq && apt-get install -y curl apt-utils git zip unzip + +## Composer +COPY ./utilities/testrunners/shared/install-composer.sh /root/install-composer.sh +WORKDIR /root +RUN sh ./install-composer.sh +RUN mv ./composer.phar /usr/local/bin/composer diff --git a/utilities/testrunners/php73/Dockerfile b/utilities/testrunners/php73/Dockerfile new file mode 100644 index 00000000..e276bdcd --- /dev/null +++ b/utilities/testrunners/php73/Dockerfile @@ -0,0 +1,10 @@ +FROM php:7.3-cli + +## Basic utilities +RUN apt-get update -yqq && apt-get install -y curl apt-utils git zip unzip + +## Composer +COPY ./utilities/testrunners/shared/install-composer.sh /root/install-composer.sh +WORKDIR /root +RUN sh ./install-composer.sh +RUN mv ./composer.phar /usr/local/bin/composer diff --git a/utilities/testrunners/php74/Dockerfile b/utilities/testrunners/php74/Dockerfile new file mode 100644 index 00000000..d6fb4c39 --- /dev/null +++ b/utilities/testrunners/php74/Dockerfile @@ -0,0 +1,10 @@ +FROM php:7.4-cli + +## Basic utilities +RUN apt-get update -yqq && apt-get install -y curl apt-utils git zip unzip + +## Composer +COPY ./utilities/testrunners/shared/install-composer.sh /root/install-composer.sh +WORKDIR /root +RUN sh ./install-composer.sh +RUN mv ./composer.phar /usr/local/bin/composer diff --git a/utilities/testrunners/php80/Dockerfile b/utilities/testrunners/php80/Dockerfile new file mode 100644 index 00000000..ae440e9d --- /dev/null +++ b/utilities/testrunners/php80/Dockerfile @@ -0,0 +1,10 @@ +FROM php:8.0-cli + +## Basic utilities +RUN apt-get update -yqq && apt-get install -y curl apt-utils git zip unzip + +## Composer +COPY ./utilities/testrunners/shared/install-composer.sh /root/install-composer.sh +WORKDIR /root +RUN sh ./install-composer.sh +RUN mv ./composer.phar /usr/local/bin/composer diff --git a/utilities/testrunners/php81/Dockerfile b/utilities/testrunners/php81/Dockerfile new file mode 100644 index 00000000..46f99559 --- /dev/null +++ b/utilities/testrunners/php81/Dockerfile @@ -0,0 +1,10 @@ +FROM php:8.1-cli + +## Basic utilities +RUN apt-get update -yqq && apt-get install -y curl apt-utils git zip unzip + +## Composer +COPY ./utilities/testrunners/shared/install-composer.sh /root/install-composer.sh +WORKDIR /root +RUN sh ./install-composer.sh +RUN mv ./composer.phar /usr/local/bin/composer diff --git a/utilities/testrunners/run-test.sh b/utilities/testrunners/run-test.sh new file mode 100755 index 00000000..cca96f5e --- /dev/null +++ b/utilities/testrunners/run-test.sh @@ -0,0 +1,2 @@ +#!/bin/sh +composer update && php ./vendor/phpunit/phpunit/phpunit diff --git a/utilities/testrunners/shared/install-composer.sh b/utilities/testrunners/shared/install-composer.sh new file mode 100644 index 00000000..585031d9 --- /dev/null +++ b/utilities/testrunners/shared/install-composer.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')" +php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" +ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" + +if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ] +then + >&2 echo 'ERROR: Invalid installer checksum' + rm composer-setup.php + exit 1 +fi + +php composer-setup.php --quiet +RESULT=$? +rm composer-setup.php +exit $RESULT \ No newline at end of file