From 02229c0a6694688518497d63a3901a77e97874da Mon Sep 17 00:00:00 2001 From: KyleKatarn Date: Sun, 2 May 2021 19:38:56 +0200 Subject: [PATCH 1/5] Requires pug ^2.7.6 || ^3.4.1 --- .github/workflows/coverage.yml | 62 ++++++++++++++++++++++++++++++++ .github/workflows/tests.yml | 48 +++++++++++++++++++++++++ composer.json | 5 ++- tests/unit/TestCase.php | 20 ++++++----- tests/unit/TestCaseTyped.php | 34 ++++++++++++++++++ tests/unit/TestCaseUntyped.php | 34 ++++++++++++++++++ tests/unit/renderer/MainTest.php | 4 +-- 7 files changed, 193 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/coverage.yml create mode 100644 .github/workflows/tests.yml create mode 100644 tests/unit/TestCaseTyped.php create mode 100644 tests/unit/TestCaseUntyped.php diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..523bdd2 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,62 @@ +name: Coverage + +on: + push: + branches: [ '**' ] + pull_request: + branches: [ '**' ] + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php: ['7.4'] + setup: ['stable'] + + name: PHP + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + tools: composer:v2 + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v2 + with: + path: vendor + key: ${{ runner.os }}-${{ matrix.setup }}-v2-php-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.setup }}-v2-php-${{ matrix.php }}- + + - name: Code Climate Test Reporter Preparation + if: ${{ env.CC_TEST_REPORTER_ID != '' }} + run: | + curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter + chmod +x ./cc-test-reporter + ./cc-test-reporter before-build + env: + CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} + + - name: Install dependencies + if: steps.composer-cache.outputs.cache-hit != 'true' + run: composer update --prefer-dist --prefer-${{ matrix.setup }} --no-progress --no-interaction + + - name: Run test suite + run: vendor/bin/phpunit --coverage-text --coverage-clover=coverage.xml + + - name: Code Climate Test Reporter + if: ${{ env.CC_TEST_REPORTER_ID != '' }} + run: | + cp coverage.xml clover.xml + bash <(curl -s https://codecov.io/bash) + ./cc-test-reporter after-build --coverage-input-type clover --exit-code 0 + env: + CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..24284c4 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,48 @@ +name: Tests + +on: + push: + branches: [ '**' ] + pull_request: + branches: [ '**' ] + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'] + renderer: ['talesoft/tale-pug:^1.5', 'pug-php/pug:^2.7.6', 'pug-php/pug:^3.4.1'] + setup: ['lowest', 'stable'] + + name: PHP ${{ matrix.php }} - ${{ matrix.renderer }} - ${{ matrix.setup }} + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + tools: composer:v2 + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v2 + with: + path: vendor + key: ${{ runner.os }}-${{ matrix.setup }}-php-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.setup }}-php-${{ matrix.php }}- + + - name: Install dependencies + if: steps.composer-cache.outputs.cache-hit != 'true' + run: | + composer require ${{ matrix.renderer }} --no-update + ${{ matrix.php >= 8 && 'composer require --no-update phpunit/phpunit:^8.5.15 --no-interaction;' || '' }} + composer update --prefer-dist --prefer-${{ matrix.setup }} --no-progress --no-interaction ${{ matrix.php >= 8.1 && '--ignore-platform-req=php' || '' }} + + - name: Run test suite + run: vendor/bin/phpunit --no-coverage --verbose diff --git a/composer.json b/composer.json index 0e65164..b6081e4 100644 --- a/composer.json +++ b/composer.json @@ -34,13 +34,12 @@ "require": { "php": ">=5.4.0", "yiisoft/yii2": "^2.0", - "pug-php/pug": "^2.7 || ^3.0" + "pug-php/pug": "^2.7.6 || ^3.4.1" }, "require-dev": { "yidas/yii2-composer-bower-skip": "^2.0", "yiisoft/yii2-bootstrap": "^2.0", - "phpunit/phpunit": ">=4.8.35 <6.0", - "codeclimate/php-test-reporter": ">=0.3" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^8.5.15" }, "autoload": { "psr-4": { diff --git a/tests/unit/TestCase.php b/tests/unit/TestCase.php index fc99541..d5c9992 100644 --- a/tests/unit/TestCase.php +++ b/tests/unit/TestCase.php @@ -12,23 +12,27 @@ namespace Pug\Yii\Tests; +use ReflectionMethod; use yii\helpers\ArrayHelper; -abstract class TestCase extends \PHPUnit_Framework_TestCase +$setUp = @new ReflectionMethod('PHPUnit\\Framework\\TestCase', 'setUp'); +$testCaseInitialization = true; + +require $setUp && method_exists($setUp, 'hasReturnType') && $setUp->hasReturnType() + ? __DIR__.'/TestCaseTyped.php' + : __DIR__.'/TestCaseUntyped.php'; + +unset($testCaseInitialization); + +class TestCase extends TestCaseTypeBase { public static $params; - protected function setUp() + protected function prepareTest() { - parent::setUp(); $this->mockApplication(); } - protected function tearDown() - { - parent::tearDown(); - } - /** * Populates Yii::$app with a new application * The application will be destroyed on tearDown() automatically. diff --git a/tests/unit/TestCaseTyped.php b/tests/unit/TestCaseTyped.php new file mode 100644 index 0000000..55ec4ed --- /dev/null +++ b/tests/unit/TestCaseTyped.php @@ -0,0 +1,34 @@ +prepareTest(); + } + + protected function tearDown(): void + { + $this->finishTest(); + } +} +// @codeCoverageIgnoreEnd diff --git a/tests/unit/TestCaseUntyped.php b/tests/unit/TestCaseUntyped.php new file mode 100644 index 0000000..20f9683 --- /dev/null +++ b/tests/unit/TestCaseUntyped.php @@ -0,0 +1,34 @@ +prepareTest(); + } + + protected function tearDown() + { + $this->finishTest(); + } +} +// @codeCoverageIgnoreEnd diff --git a/tests/unit/renderer/MainTest.php b/tests/unit/renderer/MainTest.php index b3ca818..79f3754 100644 --- a/tests/unit/renderer/MainTest.php +++ b/tests/unit/renderer/MainTest.php @@ -16,10 +16,8 @@ class MainTest extends \Pug\Yii\Tests\TestCase { - public function tearDown() + public function finishTest() { - parent::tearDown(); - $cachePath = $this->getCachePath(); FileHelper::removeDirectory($cachePath); From 8fa96568fa3cc0bcc8c2cb0b3a82f51663aa4fa8 Mon Sep 17 00:00:00 2001 From: KyleKatarn Date: Sun, 2 May 2021 19:50:26 +0200 Subject: [PATCH 2/5] Drop yii2 < 2.0.13 support because of reserved name conflict --- composer.json | 2 +- tests/unit/TestCase.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index b6081e4..d3c620c 100644 --- a/composer.json +++ b/composer.json @@ -33,7 +33,7 @@ }, "require": { "php": ">=5.4.0", - "yiisoft/yii2": "^2.0", + "yiisoft/yii2": "^2.0.13", "pug-php/pug": "^2.7.6 || ^3.4.1" }, "require-dev": { diff --git a/tests/unit/TestCase.php b/tests/unit/TestCase.php index d5c9992..f5eaf76 100644 --- a/tests/unit/TestCase.php +++ b/tests/unit/TestCase.php @@ -19,8 +19,8 @@ $testCaseInitialization = true; require $setUp && method_exists($setUp, 'hasReturnType') && $setUp->hasReturnType() - ? __DIR__.'/TestCaseTyped.php' - : __DIR__.'/TestCaseUntyped.php'; + ? __DIR__ . '/TestCaseTyped.php' + : __DIR__ . '/TestCaseUntyped.php'; unset($testCaseInitialization); From 6140ec8133df1275cac2156db22c75141fa13e1d Mon Sep 17 00:00:00 2001 From: KyleKatarn Date: Sun, 2 May 2021 19:53:33 +0200 Subject: [PATCH 3/5] Fix tests compatibility --- .github/workflows/tests.yml | 9 ++++++++- tests/unit/TestCaseUntyped.php | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 24284c4..1d2be6d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -13,9 +13,16 @@ jobs: strategy: fail-fast: false matrix: - php: ['5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'] + php: ['5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'] renderer: ['talesoft/tale-pug:^1.5', 'pug-php/pug:^2.7.6', 'pug-php/pug:^3.4.1'] setup: ['lowest', 'stable'] + include: + - php: 5.4 + renderer: pug-php/pug:^2.7.6 + setup: lowest + - php: 5.4 + renderer: pug-php/pug:^2.7.6 + setup: stable name: PHP ${{ matrix.php }} - ${{ matrix.renderer }} - ${{ matrix.setup }} diff --git a/tests/unit/TestCaseUntyped.php b/tests/unit/TestCaseUntyped.php index 20f9683..3d1282e 100644 --- a/tests/unit/TestCaseUntyped.php +++ b/tests/unit/TestCaseUntyped.php @@ -1,6 +1,6 @@ Date: Sun, 2 May 2021 20:01:51 +0200 Subject: [PATCH 4/5] Update Yii2 dev dependencies --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index d3c620c..01c4688 100644 --- a/composer.json +++ b/composer.json @@ -37,8 +37,8 @@ "pug-php/pug": "^2.7.6 || ^3.4.1" }, "require-dev": { - "yidas/yii2-composer-bower-skip": "^2.0", - "yiisoft/yii2-bootstrap": "^2.0", + "yidas/yii2-composer-bower-skip": "^2.0.13", + "yiisoft/yii2-bootstrap": "^2.0.10", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^8.5.15" }, "autoload": { From 8b80cdda78930102eee750996b64a52bbb7f7052 Mon Sep 17 00:00:00 2001 From: KyleKatarn Date: Sun, 2 May 2021 20:09:02 +0200 Subject: [PATCH 5/5] Remove travis --- .github/workflows/coverage.yml | 2 +- .github/workflows/tests.yml | 2 +- .travis.yml | 66 ---------------------------------- composer.json | 2 +- 4 files changed, 3 insertions(+), 69 deletions(-) delete mode 100644 .travis.yml diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 523bdd2..1467455 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -50,7 +50,7 @@ jobs: run: composer update --prefer-dist --prefer-${{ matrix.setup }} --no-progress --no-interaction - name: Run test suite - run: vendor/bin/phpunit --coverage-text --coverage-clover=coverage.xml + run: vendor/bin/phpunit -c tests/phpunit-travis.xml --coverage-text --coverage-clover=coverage.xml - name: Code Climate Test Reporter if: ${{ env.CC_TEST_REPORTER_ID != '' }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1d2be6d..8f4030b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -52,4 +52,4 @@ jobs: composer update --prefer-dist --prefer-${{ matrix.setup }} --no-progress --no-interaction ${{ matrix.php >= 8.1 && '--ignore-platform-req=php' || '' }} - name: Run test suite - run: vendor/bin/phpunit --no-coverage --verbose + run: vendor/bin/phpunit -c tests/phpunit-travis.xml --no-coverage --verbose diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 921e91b..0000000 --- a/.travis.yml +++ /dev/null @@ -1,66 +0,0 @@ -language: php - -matrix: - include: - - php: 5.4 - env: RENDERER='pug-php/pug:^2.7' - - php: 5.5 - env: RENDERER='pug-php/pug:^2.7' - - php: 5.5 - env: RENDERER='pug-php/pug:^3.0' - - php: 5.5 - env: RENDERER='talesoft/tale-pug:^1.5' - - php: 5.6 - env: RENDERER='pug-php/pug:^2.7' - - php: 5.6 - env: RENDERER='pug-php/pug:^3.0' - - php: 5.6 - env: RENDERER='talesoft/tale-pug:^1.5' - - php: 7.0 - env: RENDERER='pug-php/pug:^2.7' - - php: 7.0 - env: RENDERER='pug-php/pug:^3.0' - - php: 7.1 - env: RENDERER='pug-php/pug:^2.7' - - php: 7.0 - env: RENDERER='talesoft/tale-pug:^1.5' - - php: 7.1 - env: RENDERER='pug-php/pug:^3.0' - - php: 7.2 - env: RENDERER='pug-php/pug:^2.7' - - php: 7.2 - env: RENDERER='pug-php/pug:^3.0' - - php: 7.2 - env: RENDERER='talesoft/tale-pug:^1.5' - - php: 7.3 - env: RENDERER='pug-php/pug:^2.7' - - php: 7.3 - env: RENDERER='pug-php/pug:^3.0' - - php: 7.3 - env: RENDERER='talesoft/tale-pug:^1.5' - -sudo: false - -cache: - directories: - - vendor - -install: - - travis_retry composer self-update && composer --version - - travis_retry composer remove pug-php/pug --no-update - - travis_retry composer require "${RENDERER}" --no-update - - echo "$(cat composer.json)" - - travis_retry composer install --prefer-dist --no-interaction - -script: - - vendor/bin/phpunit -c tests/phpunit-travis.xml --verbose --coverage-text --coverage-clover=coverage.xml - -after_script: - - if [[ $RENDERER == "pug-php/pug:^3.0" && ${TRAVIS_PHP_VERSION:0:3} == "5.6" ]]; then vendor/bin/test-reporter --coverage-report coverage.xml; fi; - -after_success: - - if [[ $RENDERER == "pug-php/pug:^3.0" && ${TRAVIS_PHP_VERSION:0:3} == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi; - -addons: - code_climate: - repo_token: 35495c5c91469e666036f0eb22630945ddeeddd13c10745986d7e8be7b83a318 diff --git a/composer.json b/composer.json index 01c4688..b25323d 100644 --- a/composer.json +++ b/composer.json @@ -39,7 +39,7 @@ "require-dev": { "yidas/yii2-composer-bower-skip": "^2.0.13", "yiisoft/yii2-bootstrap": "^2.0.10", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^8.5.15" + "phpunit/phpunit": "^8.5.15" }, "autoload": { "psr-4": {