Skip to content

Commit

Permalink
add local testrunners for all supported PHP versions using docker.
Browse files Browse the repository at this point in the history
  • Loading branch information
wisskid committed Jul 14, 2022
1 parent f8e1ba7 commit 016145a
Show file tree
Hide file tree
Showing 11 changed files with 119 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .gitattributes
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Expand Up @@ -5,7 +5,6 @@
lexer/*.php
lexer/*.php.bak
lexer/*.out
utilies/*.php

# Dev
phpunit*
Expand Down
39 changes: 39 additions & 0 deletions 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
10 changes: 10 additions & 0 deletions 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
10 changes: 10 additions & 0 deletions 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
10 changes: 10 additions & 0 deletions 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
10 changes: 10 additions & 0 deletions 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
10 changes: 10 additions & 0 deletions 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
10 changes: 10 additions & 0 deletions 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
2 changes: 2 additions & 0 deletions utilities/testrunners/run-test.sh
@@ -0,0 +1,2 @@
#!/bin/sh
composer update && php ./vendor/phpunit/phpunit/phpunit
17 changes: 17 additions & 0 deletions 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

0 comments on commit 016145a

Please sign in to comment.