Skip to content

Use named args for test when PHP >= 8.0 #32

Use named args for test when PHP >= 8.0

Use named args for test when PHP >= 8.0 #32

Workflow file for this run

# https://help.github.com/en/categories/automating-your-workflow-with-github-actions
on:
pull_request:
push:
branches:
- "master"
name: "Validate"
jobs:
composer-validate:
name: "Composer Validate"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Setup PHP"
uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: 8.1
- name: "Validate composer.json and composer.lock"
run: composer validate
static-code-analysis:
name: "Static Code Analysis"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Setup PHP"
uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: 8.1
- name: "Install locked dependencies with composer"
run: composer install --no-interaction --no-progress
- name: "Run phpstan/phpstan"
run: vendor/bin/phpstan analyse --configuration=phpstan.neon
tests:
name: "Tests"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-version:
- 7.4
- 8.0
- 8.1
dependencies:
- lowest
- locked
- highest
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Setup PHP"
uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: ${{ matrix.php-version }}
- name: "Install lowest dependencies with composer"
if: matrix.dependencies == 'lowest'
run: composer update --prefer-lowest --no-interaction --no-progress
- name: "Install locked dependencies with composer"
if: matrix.dependencies == 'locked'
run: composer install --no-interaction --no-progress
- name: "Install highest dependencies with composer"
if: matrix.dependencies == 'highest'
run: composer update --no-interaction --no-progress
- name: "Run unit tests with phpunit/phpunit"
run: vendor/bin/phpunit
examples:
name: "Examples"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
example:
- custom-types
- input
- install
- php-keywords
- simple
- polymorphic
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Setup PHP"
uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: 8.1
env:
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Run the integration tests in each example"
run: cd examples/${{ matrix.example }} && ./test.sh
code-coverage:
name: "Code Coverage"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Setup PHP"
uses: shivammathur/setup-php@v2
with:
coverage: pcov
extensions: mbstring
php-version: 8.1
- name: "Install locked dependencies with composer"
run: composer install --no-interaction --no-progress
- name: "Collect code coverage with Xdebug and phpunit/phpunit"
run: vendor/bin/phpunit --coverage-clover=build/logs/clover.xml
- name: "Send code coverage report to codecov.io"
uses: codecov/codecov-action@v2
mutation-tests:
name: "Mutation Tests"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Setup PHP"
uses: shivammathur/setup-php@v2
with:
coverage: xdebug
extensions: mbstring
php-version: 8.1
- name: "Install locked dependencies with composer"
run: composer install --no-interaction --no-progress
- name: "Run mutation tests with infection/infection"
run: vendor/bin/infection