117 lines
3.1 KiB
YAML
117 lines
3.1 KiB
YAML
name: PHP
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
|
|
jobs:
|
|
php-cs-fixer:
|
|
name: PHP CS Fixer
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: '7.4'
|
|
extensions: xml
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Validate composer config
|
|
run: composer validate --strict
|
|
|
|
- name: Composer Install
|
|
run: composer global require friendsofphp/php-cs-fixer
|
|
|
|
- name: Add environment path
|
|
run: export PATH="$PATH:$HOME/.composer/vendor/bin"
|
|
|
|
- name: Run PHPCSFixer
|
|
run: php-cs-fixer fix --dry-run --diff
|
|
|
|
phpstan:
|
|
name: PHP Static Analysis
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php:
|
|
- '7.1'
|
|
- '7.2'
|
|
- '7.3'
|
|
- '7.4'
|
|
- '8.0'
|
|
- '8.1'
|
|
- '8.2'
|
|
- '8.3'
|
|
steps:
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
extensions: xml
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Composer Install
|
|
run: composer install --ansi --prefer-dist --no-interaction --no-progress
|
|
|
|
- name: Run phpstan
|
|
run: ./vendor/bin/phpstan analyse -c phpstan.neon.dist
|
|
|
|
phpunit:
|
|
name: PHPUnit
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php:
|
|
- '7.1'
|
|
- '7.2'
|
|
- '7.3'
|
|
- '7.4'
|
|
- '8.0'
|
|
- '8.1'
|
|
- '8.2'
|
|
- '8.3'
|
|
steps:
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
extensions: xml
|
|
coverage: ${{ (matrix.php == '8.1') && 'xdebug' || 'none' }}
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install dependencies
|
|
run: composer install --ansi --prefer-dist --no-interaction --no-progress
|
|
|
|
- name: Run PHPUnit
|
|
if: matrix.php != '8.1'
|
|
run: ./vendor/bin/phpunit -c phpunit.xml.dist
|
|
|
|
- name: Run PHPUnit (w CodeCoverage)
|
|
if: matrix.php == '8.1'
|
|
run: XDEBUG_MODE=coverage ./vendor/bin/phpunit -c phpunit.xml.dist --coverage-clover build/clover.xml
|
|
|
|
- name: Upload coverage results to Coveralls
|
|
if: matrix.php == '8.1'
|
|
env:
|
|
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
wget https://github.com/php-coveralls/php-coveralls/releases/download/v2.4.3/php-coveralls.phar
|
|
chmod +x php-coveralls.phar
|
|
php php-coveralls.phar --coverage_clover=build/clover.xml --json_path=build/coveralls-upload.json -vvv
|
|
|
|
roave-backwards-compatibility-check:
|
|
name: Roave Backwards Compatibility Check
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: "Check for BC breaks"
|
|
run: docker run -u $(id -u) -v $(pwd):/app nyholm/roave-bc-check-ga
|