From b2b24147062ec088c6a0b0b330adaaaa3e39ca19 Mon Sep 17 00:00:00 2001 From: Ondrej Mirtes Date: Sun, 13 Dec 2020 11:25:26 +0100 Subject: [PATCH] Use GitHub Actions instead of Travis CI --- .coveralls.yml | 3 - .github/workflows/build.yml | 160 ++++++++++++++++++ .travis.yml | 37 ---- README.md | 2 +- build-cs/.gitignore | 2 + build-cs/composer.json | 7 + build.xml | 15 +- composer.json | 15 +- phpcs.xml | 2 +- .../ODM/document-manager.php | 3 - .../ORM/entity-manager.php | 3 - tests/Rules/Doctrine/ORM/entity-manager.php | 3 - 12 files changed, 191 insertions(+), 61 deletions(-) delete mode 100644 .coveralls.yml create mode 100644 .github/workflows/build.yml delete mode 100644 .travis.yml create mode 100644 build-cs/.gitignore create mode 100644 build-cs/composer.json diff --git a/.coveralls.yml b/.coveralls.yml deleted file mode 100644 index 267998da..00000000 --- a/.coveralls.yml +++ /dev/null @@ -1,3 +0,0 @@ -service_name: travis-ci -coverage_clover: tests/tmp/clover.xml -json_path: tests/tmp/coveralls.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..aba91f05 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,160 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Build" + +on: + pull_request: + push: + branches: + - "master" + +jobs: + lint: + name: "Lint" + runs-on: "ubuntu-latest" + + strategy: + matrix: + php-version: + - "7.1" + - "7.2" + - "7.3" + - "7.4" + - "8.0" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "${{ matrix.php-version }}" + + - name: "Validate Composer" + run: "composer validate" + + - name: "Install dependencies" + run: "composer install --no-interaction --no-progress --no-suggest" + + - name: "Update PHPUnit" + if: matrix.php-version == '7.4' || matrix.php-version == '8.0' + run: "composer require --dev phpunit/phpunit:'^9.5' --update-with-dependencies" + + + - name: "Lint" + run: "vendor/bin/phing lint" + + coding-standards: + name: "Coding Standard" + + runs-on: "ubuntu-latest" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "7.4" + + - name: "Validate Composer" + run: "composer validate" + + - name: "Install dependencies" + run: "composer install --no-interaction --no-progress --no-suggest" + + - name: "Lint" + run: "vendor/bin/phing lint" + + - name: "Coding Standard" + run: "vendor/bin/phing cs" + + tests: + name: "Tests" + runs-on: "ubuntu-latest" + + strategy: + fail-fast: false + matrix: + php-version: + - "7.1" + - "7.2" + - "7.3" + - "7.4" + - "8.0" + dependencies: + - "lowest" + - "highest" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "${{ matrix.php-version }}" + + - name: "Install lowest dependencies" + if: ${{ matrix.dependencies == 'lowest' }} + run: "composer update --prefer-lowest --no-interaction --no-progress --no-suggest" + + - name: "Install highest dependencies" + if: ${{ matrix.dependencies == 'highest' }} + run: "composer update --no-interaction --no-progress --no-suggest" + + - name: "Update PHPUnit" + if: matrix.php-version == '7.4' || matrix.php-version == '8.0' + run: "composer require --dev phpunit/phpunit:'^9.5' --update-with-dependencies" + + - name: "Tests" + run: "vendor/bin/phing tests" + + static-analysis: + name: "PHPStan" + runs-on: "ubuntu-latest" + + strategy: + fail-fast: false + matrix: + php-version: + - "7.1" + - "7.2" + - "7.3" + - "7.4" + - "8.0" + dependencies: + - "lowest" + - "highest" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "${{ matrix.php-version }}" + extensions: mbstring + tools: composer:v2 + + - name: "Install lowest dependencies" + if: ${{ matrix.dependencies == 'lowest' }} + run: "composer update --prefer-lowest --no-interaction --no-progress --no-suggest" + + - name: "Install highest dependencies" + if: ${{ matrix.dependencies == 'highest' }} + run: "composer update --no-interaction --no-progress --no-suggest" + + - name: "Update PHPUnit" + if: matrix.php-version == '7.4' || matrix.php-version == '8.0' + run: "composer require --dev phpunit/phpunit:'^9.5' --update-with-dependencies" + + - name: "PHPStan" + run: "vendor/bin/phing phpstan" diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e182c24c..00000000 --- a/.travis.yml +++ /dev/null @@ -1,37 +0,0 @@ -language: php -php: - - 7.1 - - 7.2 - - 7.3 - - 7.4 -before_script: - - composer self-update - - composer install -script: - - vendor/bin/phing -after_script: - - php vendor/bin/coveralls -v - -jobs: - include: - - stage: test - os: windows - dist: 1803-containers - language: sh # No PHP currently - env: PHP_VERSION=7.3.12 - install: - - choco install php --version=${PHP_VERSION} --package-parameters="/InstallDir:c:\tools\php" - - choco install composer --ia "/DEV=C:\tools\php" - - cp 'C:\tools\php\php.ini-production' 'C:\tools\php\php.ini' - - echo 'memory_limit=1G' >> 'C:\tools\php\php.ini' - - echo 'date.timezone="UTC"' >> 'C:\tools\php\php.ini' - - echo 'extension_dir=ext' >> 'C:\tools\php\php.ini' - - echo 'extension=php_mbstring.dll' >> 'C:\tools\php\php.ini' - - echo 'extension=php_openssl.dll' >> 'C:\tools\php\php.ini' - - echo 'extension=php_soap.dll' >> 'C:\tools\php\php.ini' - - echo 'extension=php_mysqli.dll' >> 'C:\tools\php\php.ini' - - echo 'extension=php_intl.dll' >> 'C:\tools\php\php.ini' - - export PATH=/c/tools/php:$PATH - script: - - vendor/bin/phing tests - - vendor/bin/phing phpstan diff --git a/README.md b/README.md index 8ea86f10..73b91578 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Doctrine extensions for PHPStan -[![Build Status](https://travis-ci.com/phpstan/phpstan-doctrine.svg?branch=master)](https://travis-ci.com/phpstan/phpstan-doctrine) +[![Build](https://github.com/phpstan/phpstan-doctrine/workflows/Build/badge.svg)](https://github.com/phpstan/phpstan-doctrine/actions) [![Latest Stable Version](https://poser.pugx.org/phpstan/phpstan-doctrine/v/stable)](https://packagist.org/packages/phpstan/phpstan-doctrine) [![License](https://poser.pugx.org/phpstan/phpstan-doctrine/license)](https://packagist.org/packages/phpstan/phpstan-doctrine) diff --git a/build-cs/.gitignore b/build-cs/.gitignore new file mode 100644 index 00000000..ff72e2d0 --- /dev/null +++ b/build-cs/.gitignore @@ -0,0 +1,2 @@ +/composer.lock +/vendor diff --git a/build-cs/composer.json b/build-cs/composer.json new file mode 100644 index 00000000..9acd0275 --- /dev/null +++ b/build-cs/composer.json @@ -0,0 +1,7 @@ +{ + "require-dev": { + "consistence/coding-standard": "^3.10", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "slevomat/coding-standard": "^6.4" + } +} diff --git a/build.xml b/build.xml index 2b46b568..99fa177f 100644 --- a/build.xml +++ b/build.xml @@ -36,7 +36,18 @@ + + + + + + - + diff --git a/tests/DoctrineIntegration/ODM/document-manager.php b/tests/DoctrineIntegration/ODM/document-manager.php index 403a6ab6..3372e828 100644 --- a/tests/DoctrineIntegration/ODM/document-manager.php +++ b/tests/DoctrineIntegration/ODM/document-manager.php @@ -1,14 +1,11 @@ setProxyDir(__DIR__); $config->setProxyNamespace('PHPstan\Doctrine\OdmProxies'); diff --git a/tests/DoctrineIntegration/ORM/entity-manager.php b/tests/DoctrineIntegration/ORM/entity-manager.php index 45e13b3a..0014a379 100644 --- a/tests/DoctrineIntegration/ORM/entity-manager.php +++ b/tests/DoctrineIntegration/ORM/entity-manager.php @@ -1,14 +1,11 @@ setProxyDir(__DIR__); $config->setProxyNamespace('PHPstan\Doctrine\OrmProxies'); diff --git a/tests/Rules/Doctrine/ORM/entity-manager.php b/tests/Rules/Doctrine/ORM/entity-manager.php index b6874a40..42e0eaa7 100644 --- a/tests/Rules/Doctrine/ORM/entity-manager.php +++ b/tests/Rules/Doctrine/ORM/entity-manager.php @@ -1,14 +1,11 @@ setProxyDir(__DIR__); $config->setProxyNamespace('PHPstan\Doctrine\OrmProxies');