From 149cead526603164434b2e5793506e8f4b712f75 Mon Sep 17 00:00:00 2001 From: "n.gnato" Date: Mon, 6 Aug 2018 16:00:02 +0300 Subject: [PATCH 01/13] Add Makefile with dockerized dev tools --- .gitignore | 2 ++ Dockerfile | 19 +++++++++++++++++++ Makefile | 14 ++++++++++++++ tools/composer | 14 ++++++++++++++ tools/phpunit | 8 ++++++++ 5 files changed, 57 insertions(+) create mode 100644 Dockerfile create mode 100644 Makefile create mode 100755 tools/composer create mode 100755 tools/phpunit diff --git a/.gitignore b/.gitignore index 224d9f2..8e99f9f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +/.idea/ +/_coverage/ /.phpunit.result.cache /composer.lock /phpunit.xml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a54f67b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM php:7.1 + +RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ + && php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \ + && php composer-setup.php \ + && php -r "unlink('composer-setup.php');" \ + && mv composer.phar /usr/local/bin/composer \ + && apt-get update \ + && apt-get install -y zlib1g-dev \ + && docker-php-ext-install zip + +# enable phpdebug +RUN apt-get install -y libxml2-dev \ + && docker-php-source extract \ + && cd /usr/src/php \ + && ./configure --enable-phpdbg \ +&& docker-php-source delete + +WORKDIR /app diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1bff84b --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +## Add dockerized commands to path +PATH := tools:$(PATH) + +docker-build: + docker build -t timeweb/phpstan-enum . + +install: + composer install + +test: + phpunit + +test-coverage: + phpunit --coverage-html=_coverage --coverage-text \ No newline at end of file diff --git a/tools/composer b/tools/composer new file mode 100755 index 0000000..2c645be --- /dev/null +++ b/tools/composer @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +mkdir -p $HOME/.composer/cache/ + +test -t 1 && USE_TTY="--tty" + +docker run --rm --interactive ${USE_TTY} \ + --user $UID:$UID \ + --volume /etc/passwd:/etc/passwd:ro \ + --volume /etc/group:/etc/group:ro \ + --volume $PWD:/app \ + --volume $HOME/.composer:/tmp/.composer \ + --env COMPOSER_HOME=/tmp/.composer \ + timeweb/phpstan-enum composer "$@" diff --git a/tools/phpunit b/tools/phpunit new file mode 100755 index 0000000..028d208 --- /dev/null +++ b/tools/phpunit @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +test -t 1 && USE_TTY="--tty" + +docker run --rm --init --interactive ${USE_TTY} \ + --user $UID:$UID \ + --volume $PWD:/app \ + timeweb/phpstan-enum phpdbg -qrr vendor/bin/phpunit $@ From 15b156eb679e63c074935720c0db38be31ce128f Mon Sep 17 00:00:00 2001 From: "n.gnato" Date: Mon, 6 Aug 2018 16:00:02 +0300 Subject: [PATCH 02/13] Add Makefile with dockerized dev tools --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8e99f9f..f73589d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ /.idea/ -/_coverage/ /.phpunit.result.cache +/_coverage/ /composer.lock /phpunit.xml /vendor/ From 36d4c969733b33072300f9300965e5198cdd0d85 Mon Sep 17 00:00:00 2001 From: samizdam Date: Tue, 16 Jul 2019 21:05:37 +0300 Subject: [PATCH 03/13] change composer installation: use latest version --- Dockerfile | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index a54f67b..0bf6fac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,14 @@ -FROM php:7.1 +FROM php:7.3 -RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ - && php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \ - && php composer-setup.php \ - && php -r "unlink('composer-setup.php');" \ - && mv composer.phar /usr/local/bin/composer \ - && apt-get update \ +# Install composer and required packages +RUN apt-get update \ && apt-get install -y zlib1g-dev \ && docker-php-ext-install zip -# enable phpdebug +RUN curl https://raw.githubusercontent.com/composer/getcomposer.org/3c21a2c1affd88dd3fec6251e91a53e440bc2198/web/installer | php -- --quiet \ + && mv composer.phar /usr/bin/composer + +# Enable phpdebug RUN apt-get install -y libxml2-dev \ && docker-php-source extract \ && cd /usr/src/php \ From 94ab57a94b5730af36c7553030a68de659c75fb4 Mon Sep 17 00:00:00 2001 From: samizdam Date: Tue, 16 Jul 2019 21:16:16 +0300 Subject: [PATCH 04/13] Up php version for base docker image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0bf6fac..3e33a54 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM php:7.3 +FROM php:7.2 # Install composer and required packages RUN apt-get update \ From bd950dc8e291a82d6f1f59a09905a03cd5a18021 Mon Sep 17 00:00:00 2001 From: samizdam Date: Tue, 16 Jul 2019 21:16:54 +0300 Subject: [PATCH 05/13] Add to readme info about development installation with(-out) docker --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 6382d8e..4dae52b 100644 --- a/README.md +++ b/README.md @@ -22,3 +22,24 @@ And include extension.neon in your project's PHPStan config includes: - vendor/timeweb/phpstan-enum/extension.neon ``` + +## Install for Local Development + +### With docker: + +``` +git clone git@github.com:timeweb/phpstan-enum.git +cd phpstan-enum +make docker-build +make install +make phpunit +``` + +### Without docker (localy installed actual version of php, composer, etc): + +``` +git clone git@github.com:timeweb/phpstan-enum.git +cd phpstan-enum +make install +make phpunit +``` From 780fade748fd86a31ec1a087dafbc069fcd57a32 Mon Sep 17 00:00:00 2001 From: samizdam Date: Fri, 19 Jul 2019 01:26:52 +0300 Subject: [PATCH 06/13] Review fixes: - quotes around phpunit args - use php 7.1 for image - remove unused volumes mounting for composer - clean apt-get lists Reorder RUN instuctions for best layers caching, remove unused packages. --- Dockerfile | 22 +++++++++++----------- Makefile | 2 +- tools/composer | 2 -- tools/phpunit | 2 +- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3e33a54..5976a14 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,18 @@ -FROM php:7.2 - -# Install composer and required packages -RUN apt-get update \ - && apt-get install -y zlib1g-dev \ - && docker-php-ext-install zip - -RUN curl https://raw.githubusercontent.com/composer/getcomposer.org/3c21a2c1affd88dd3fec6251e91a53e440bc2198/web/installer | php -- --quiet \ - && mv composer.phar /usr/bin/composer +FROM php:7.1 # Enable phpdebug -RUN apt-get install -y libxml2-dev \ +RUN apt-get update \ + && apt-get install -y --no-install-recommends libxml2-dev \ && docker-php-source extract \ && cd /usr/src/php \ && ./configure --enable-phpdbg \ -&& docker-php-source delete + && docker-php-source delete + +# Install composer and required packages +RUN apt-get update \ + && apt-get install -y --no-install-recommends unzip \ + && rm -rf /var/lib/apt/lists/* + +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer WORKDIR /app diff --git a/Makefile b/Makefile index 1bff84b..f640db5 100644 --- a/Makefile +++ b/Makefile @@ -11,4 +11,4 @@ test: phpunit test-coverage: - phpunit --coverage-html=_coverage --coverage-text \ No newline at end of file + phpunit -d memory_limit=256m --coverage-html=_coverage --coverage-text diff --git a/tools/composer b/tools/composer index 2c645be..11df874 100755 --- a/tools/composer +++ b/tools/composer @@ -6,8 +6,6 @@ test -t 1 && USE_TTY="--tty" docker run --rm --interactive ${USE_TTY} \ --user $UID:$UID \ - --volume /etc/passwd:/etc/passwd:ro \ - --volume /etc/group:/etc/group:ro \ --volume $PWD:/app \ --volume $HOME/.composer:/tmp/.composer \ --env COMPOSER_HOME=/tmp/.composer \ diff --git a/tools/phpunit b/tools/phpunit index 028d208..29dd683 100755 --- a/tools/phpunit +++ b/tools/phpunit @@ -5,4 +5,4 @@ test -t 1 && USE_TTY="--tty" docker run --rm --init --interactive ${USE_TTY} \ --user $UID:$UID \ --volume $PWD:/app \ - timeweb/phpstan-enum phpdbg -qrr vendor/bin/phpunit $@ + timeweb/phpstan-enum phpdbg -qrr vendor/bin/phpunit "$@" From 06c18d03939bf7732f9d2b5923095f62880bf813 Mon Sep 17 00:00:00 2001 From: samizdam Date: Sat, 20 Jul 2019 21:00:35 +0300 Subject: [PATCH 07/13] Fix PATH addition --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f640db5..218de07 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ## Add dockerized commands to path -PATH := tools:$(PATH) +PATH := $(PATH):tools docker-build: docker build -t timeweb/phpstan-enum . From e6439f9a7e597776a884665b440ffedc77d460f0 Mon Sep 17 00:00:00 2001 From: samizdam Date: Tue, 11 May 2021 14:46:42 +0300 Subject: [PATCH 08/13] Fix dockerized tools --- Makefile | 6 +++--- tools/{phpunit => php} | 2 +- tools/phpdbg | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) rename tools/{phpunit => php} (70%) create mode 100755 tools/phpdbg diff --git a/Makefile b/Makefile index 218de07..a3eb9e3 100644 --- a/Makefile +++ b/Makefile @@ -2,13 +2,13 @@ PATH := $(PATH):tools docker-build: - docker build -t timeweb/phpstan-enum . + docker build -t timeweb/phpstan-enum . install: composer install test: - phpunit + php vendor/bin/phpunit test-coverage: - phpunit -d memory_limit=256m --coverage-html=_coverage --coverage-text + phpdbg -qrr vendor/bin/phpunit -d memory_limit=512m --coverage-html=_coverage --coverage-text diff --git a/tools/phpunit b/tools/php similarity index 70% rename from tools/phpunit rename to tools/php index 29dd683..d480b2e 100755 --- a/tools/phpunit +++ b/tools/php @@ -5,4 +5,4 @@ test -t 1 && USE_TTY="--tty" docker run --rm --init --interactive ${USE_TTY} \ --user $UID:$UID \ --volume $PWD:/app \ - timeweb/phpstan-enum phpdbg -qrr vendor/bin/phpunit "$@" + timeweb/phpstan-enum php "$@" diff --git a/tools/phpdbg b/tools/phpdbg new file mode 100755 index 0000000..0af3d90 --- /dev/null +++ b/tools/phpdbg @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +test -t 1 && USE_TTY="--tty" + +docker run --rm --init --interactive ${USE_TTY} \ + --user $UID:$UID \ + --volume $PWD:/app \ + timeweb/phpstan-enum phpdbg "$@" From f1eb35925effcd1be5904514bd0f5dd8027cd90a Mon Sep 17 00:00:00 2001 From: samizdam Date: Tue, 11 May 2021 15:15:51 +0300 Subject: [PATCH 09/13] readme cs fixes --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4dae52b..7c5ac98 100644 --- a/README.md +++ b/README.md @@ -23,11 +23,11 @@ includes: - vendor/timeweb/phpstan-enum/extension.neon ``` -## Install for Local Development +## Install for Local Development -### With docker: +### With docker -``` +```bash git clone git@github.com:timeweb/phpstan-enum.git cd phpstan-enum make docker-build @@ -35,9 +35,9 @@ make install make phpunit ``` -### Without docker (localy installed actual version of php, composer, etc): +### Without docker (localy installed actual version of php, composer, etc) -``` +```bash git clone git@github.com:timeweb/phpstan-enum.git cd phpstan-enum make install From 78f06d12cd8b0e84df2cae566d793ce5aab12bd0 Mon Sep 17 00:00:00 2001 From: samizdam Date: Tue, 11 May 2021 15:19:09 +0300 Subject: [PATCH 10/13] Fix dockerfile lints --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 5976a14..3c2e56b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,7 @@ FROM php:7.1 # Enable phpdebug RUN apt-get update \ && apt-get install -y --no-install-recommends libxml2-dev \ + && rm -rf /var/lib/apt/lists/* \ && docker-php-source extract \ && cd /usr/src/php \ && ./configure --enable-phpdbg \ From 4fa27d04830fe04342519dfc258cee46e0ea8c23 Mon Sep 17 00:00:00 2001 From: samizdam Date: Tue, 11 May 2021 18:55:27 +0300 Subject: [PATCH 11/13] Fix lint: quote paths --- tools/composer | 4 ++-- tools/php | 2 +- tools/phpdbg | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/composer b/tools/composer index 11df874..30fcf7b 100755 --- a/tools/composer +++ b/tools/composer @@ -6,7 +6,7 @@ test -t 1 && USE_TTY="--tty" docker run --rm --interactive ${USE_TTY} \ --user $UID:$UID \ - --volume $PWD:/app \ - --volume $HOME/.composer:/tmp/.composer \ + --volume "$PWD":/app \ + --volume "$HOME"/.composer:/tmp/.composer \ --env COMPOSER_HOME=/tmp/.composer \ timeweb/phpstan-enum composer "$@" diff --git a/tools/php b/tools/php index d480b2e..1aa0f9f 100755 --- a/tools/php +++ b/tools/php @@ -4,5 +4,5 @@ test -t 1 && USE_TTY="--tty" docker run --rm --init --interactive ${USE_TTY} \ --user $UID:$UID \ - --volume $PWD:/app \ + --volume "$PWD":/app \ timeweb/phpstan-enum php "$@" diff --git a/tools/phpdbg b/tools/phpdbg index 0af3d90..f9abec5 100755 --- a/tools/phpdbg +++ b/tools/phpdbg @@ -4,5 +4,5 @@ test -t 1 && USE_TTY="--tty" docker run --rm --init --interactive ${USE_TTY} \ --user $UID:$UID \ - --volume $PWD:/app \ + --volume "$PWD":/app \ timeweb/phpstan-enum phpdbg "$@" From e0e094569d1c3354d1cc9185572ce86d64597b54 Mon Sep 17 00:00:00 2001 From: samizdam Date: Tue, 11 May 2021 19:07:20 +0300 Subject: [PATCH 12/13] Disable some dockerfile lint rules --- .github/linters/.hadolint.yaml | 5 +++++ .github/workflows/ci.yml | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) create mode 100644 .github/linters/.hadolint.yaml diff --git a/.github/linters/.hadolint.yaml b/.github/linters/.hadolint.yaml new file mode 100644 index 0000000..72c73ca --- /dev/null +++ b/.github/linters/.hadolint.yaml @@ -0,0 +1,5 @@ +ignored: + - DL3003 + - DL3008 + - DL3059 + - DL4006 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5fd6f66..bfee7a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,8 +7,8 @@ jobs: strategy: matrix: - php: ['7.1', '7.2', '7.3', '7.4', '8.0'] - prefer: ['lowest', 'stable'] + php: [ '7.1', '7.2', '7.3', '7.4', '8.0' ] + prefer: [ 'lowest', 'stable' ] name: Test on PHP ${{ matrix.php }} with ${{ matrix.prefer }} composer prefer option runs-on: ubuntu-latest @@ -62,4 +62,4 @@ jobs: env: FILTER_REGEX_EXCLUDE: .*vendor.* GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - VALIDATE_PHP_PSALM: false \ No newline at end of file + VALIDATE_PHP_PSALM: false From f830e6534ddcde3f86c6917771144140ea7d4b9a Mon Sep 17 00:00:00 2001 From: samizdam Date: Tue, 11 May 2021 19:31:19 +0300 Subject: [PATCH 13/13] bash quotes --- tools/composer | 4 ++-- tools/php | 2 +- tools/phpdbg | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/composer b/tools/composer index 30fcf7b..7de0507 100755 --- a/tools/composer +++ b/tools/composer @@ -1,12 +1,12 @@ #!/usr/bin/env bash -mkdir -p $HOME/.composer/cache/ +mkdir -p "$HOME/.composer/cache/" test -t 1 && USE_TTY="--tty" docker run --rm --interactive ${USE_TTY} \ --user $UID:$UID \ --volume "$PWD":/app \ - --volume "$HOME"/.composer:/tmp/.composer \ + --volume "$HOME/.composer":/tmp/.composer \ --env COMPOSER_HOME=/tmp/.composer \ timeweb/phpstan-enum composer "$@" diff --git a/tools/php b/tools/php index 1aa0f9f..93d6d5d 100755 --- a/tools/php +++ b/tools/php @@ -4,5 +4,5 @@ test -t 1 && USE_TTY="--tty" docker run --rm --init --interactive ${USE_TTY} \ --user $UID:$UID \ - --volume "$PWD":/app \ + --volume "$PWD:/app" \ timeweb/phpstan-enum php "$@" diff --git a/tools/phpdbg b/tools/phpdbg index f9abec5..856cc80 100755 --- a/tools/phpdbg +++ b/tools/phpdbg @@ -4,5 +4,5 @@ test -t 1 && USE_TTY="--tty" docker run --rm --init --interactive ${USE_TTY} \ --user $UID:$UID \ - --volume "$PWD":/app \ + --volume "$PWD:/app" \ timeweb/phpstan-enum phpdbg "$@"