diff --git a/.github/workflows/code_coverage.yaml b/.github/workflows/code_coverage.yaml new file mode 100644 index 0000000..0a1c440 --- /dev/null +++ b/.github/workflows/code_coverage.yaml @@ -0,0 +1,35 @@ +name: Code Coverage + +on: + pull_request: null + push: + branches: + - master + +jobs: + code_coverage: + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: shivammathur/setup-php@master + with: + php-version: 7.3 + coverage: pcov + - name: Load dependencies from cache + id: composer-cache + run: | + echo "::set-output name=dir::$(composer config cache-files-dir)" + - uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-php7.3-composer-${{ hashFiles('**/composer.json') }} + restore-keys: | + ${{ runner.os }}-php7.3-composer- + + - run: composer install --prefer-dist --no-progress --no-suggest + - run: php vendor/bin/phpunit --coverage-clover build/logs/clover.xml + - run: php vendor/bin/php-coveralls --verbose + env: + COVERALLS_RUN_LOCALLY: 1 + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} diff --git a/.github/workflows/coding_standards.yaml b/.github/workflows/coding_standards.yaml new file mode 100644 index 0000000..6ab3554 --- /dev/null +++ b/.github/workflows/coding_standards.yaml @@ -0,0 +1,31 @@ +name: Coding Standards + +on: + pull_request: null + push: + branches: + - master + +jobs: + coding_standards: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: shivammathur/setup-php@master + with: + php-version: 7.3 + coverage: none + - name: Load dependencies from cache + id: composer-cache + run: | + echo "::set-output name=dir::$(composer config cache-files-dir)" + - uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-php7.3-composer-${{ hashFiles('**/composer.json') }} + restore-keys: | + ${{ runner.os }}-php7.3-composer- + + - run: composer validate --strict + - run: composer install --prefer-dist --no-progress --no-suggest + - run: composer run-script cs diff --git a/.github/workflows/phpstan.yaml b/.github/workflows/phpstan.yaml new file mode 100644 index 0000000..8ad104a --- /dev/null +++ b/.github/workflows/phpstan.yaml @@ -0,0 +1,30 @@ +name: Static Analysis (PHPStan) + +on: + pull_request: null + push: + branches: + - master + +jobs: + phpstan: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: shivammathur/setup-php@master + with: + php-version: 7.3 + coverage: none + - name: Load dependencies from cache + id: composer-cache + run: | + echo "::set-output name=dir::$(composer config cache-files-dir)" + - uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-php7.3-composer-${{ hashFiles('**/composer.json') }} + restore-keys: | + ${{ runner.os }}-php7.3-composer- + + - run: composer install --prefer-dist --no-progress --no-suggest + - run: composer run-script phpstan diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml deleted file mode 100644 index cea58a8..0000000 --- a/.github/workflows/pr-check.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: continuous-integration - -on: - pull_request: - push: - branches: - - master - -jobs: - pr-tests: - - runs-on: ubuntu-latest - strategy: - matrix: - php-versions: ['7.1', '7.2', '7.3', '7.4'] - - name: PHP ${{ matrix.php-versions }} - steps: - - uses: actions/checkout@master - - - name: Install PHP - uses: shivammathur/setup-php@master - with: - php-version: ${{ matrix.php-versions }} - coverage: xdebug - - - name: Load dependencies from cache - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-php${{ matrix.php-versions }}-composer-${{ hashFiles('**/composer.json') }} - restore-keys: | - ${{ runner.os }}-php${{ matrix.php-versions }}-composer- - - - name: Validate composer.json and composer.lock - run: composer validate --strict - - - name: Install dependencies (<=PHP 7.3) - if: matrix.php-versions != '7.4' - run: composer install --prefer-dist --no-progress --no-suggest - - - name: Install dependencies (PHP 7.4) - if: matrix.php-versions == '7.4' - run: composer install --prefer-dist --no-progress --no-suggest --ignore-platform-reqs - - - name: PHP Coding Standards - if: matrix.php-versions == '7.2' - run: composer run-script cs - - - name: PHP Static Analysis (PHPStan) - if: matrix.php-versions == '7.2' - run: composer run-script phpstan - - - name: PHP Unit Tests with coverage - if: matrix.php-versions == '7.2' - run: vendor/bin/phpunit --coverage-clover build/logs/clover.xml - - - name: PHP Unit Tests - if: matrix.php-versions != '7.2' - run: vendor/bin/phpunit - - - name: Send to coveralls - if: matrix.php-versions == '7.2' - run: php vendor/bin/php-coveralls -v - env: - COVERALLS_RUN_LOCALLY: 1 - COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml new file mode 100644 index 0000000..bc425d1 --- /dev/null +++ b/.github/workflows/tests.yaml @@ -0,0 +1,48 @@ +name: Tests + +on: + pull_request: null + push: + branches: + - master + +jobs: + tests: + runs-on: ubuntu-latest + strategy: + matrix: + php-versions: ['7.2', '7.3', '7.4'] + + name: Tests on PHP ${{ matrix.php-versions }} + steps: + - uses: actions/checkout@master + - uses: shivammathur/setup-php@v1 + with: + php-version: ${{ matrix.php-versions }} + coverage: none + - name: Load dependencies from cache + id: composer-cache + run: | + echo "::set-output name=dir::$(composer config cache-files-dir)" + - uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-php${{ matrix.php-versions }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: | + ${{ runner.os }}-php${{ matrix.php-versions }}-composer- + + - run: composer install --prefer-dist --no-progress --no-suggest + - run: php vendor/bin/phpunit + + tests_lowest_dependencies: + runs-on: ubuntu-latest + name: Tests with lowest dependencies + steps: + - uses: actions/checkout@master + - uses: shivammathur/setup-php@v1 + with: + php-version: 7.1 + coverage: none + - run: composer update --prefer-lowest --no-progress --no-suggest + - run: php vendor/bin/phpunit + diff --git a/composer.json b/composer.json index 20ccd9a..4be23bd 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "require": { "php": "~7.1", "nette/utils": "~3.0", - "phpstan/phpstan": "~0.11.15 || ~0.12.0" + "phpstan/phpstan": "^0.11.15 || ^0.12.0" }, "require-dev": { "ergebnis/phpstan-rules": "^0.14.2",