1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
name: Tests
on:
push: ~
pull_request: ~
permissions:
contents: read
jobs:
phpcs:
name: PHPCS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: shivammathur/setup-php@v2
with:
php-version: 7.4
extensions: curl, mbstring, yaml
coverage: none
tools: composer:v2, cs2pr
- run: composer update --no-progress
- run: vendor/bin/phpcs -q --report=checkstyle | cs2pr
phpunit:
name: PHPUnit on ${{ matrix.php }} ${{ matrix.composer-flags }}
runs-on: ubuntu-latest
continue-on-error: ${{ !matrix.stable }}
strategy:
fail-fast: false
matrix:
php: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4']
stable: [true]
coverage: [true]
composer-flags: ['']
include:
- php: '7.4'
stable: true
coverage: false
composer-flags: '--prefer-lowest'
- php: '8.5'
stable: false
coverage: false
composer-flags: '--ignore-platform-req=php'
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: curl, mbstring, yaml
coverage: pcov
tools: composer:v2
- run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- run: composer update --no-progress ${{ matrix.composer-flags }}
- run: vendor/bin/phpunit --no-coverage
if: ${{ !matrix.coverage }}
- run: vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover
if: ${{ matrix.coverage }}
- run: php vendor/bin/ocular code-coverage:upload --format=php-clover coverage.clover
if: ${{ matrix.coverage }}
continue-on-error: true
phpstan:
name: PHPStan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: shivammathur/setup-php@v2
with:
php-version: 7.4
extensions: curl, mbstring, yaml
coverage: none
tools: composer:v2
- run: composer update --no-progress
- run: vendor/bin/phpstan analyse --no-progress
psalm:
name: Psalm
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: shivammathur/setup-php@v2
with:
php-version: 7.4
extensions: curl, mbstring, yaml
coverage: none
tools: composer:v2
- run: composer update --no-progress
- run: vendor/bin/psalm --no-progress --stats --threads=$(nproc) --output-format=github --shepherd
pathological:
name: Pathological Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: shivammathur/setup-php@v2
with:
php-version: 8.4
extensions: curl, mbstring, yaml
coverage: none
tools: composer:v2
- run: composer update --no-progress
- run: php tests/pathological/test.php
docs-lint:
permissions:
contents: read # for actions/checkout to fetch code
statuses: write # for github/super-linter/slim to mark status of each linter run
name: Markdownlint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: github/super-linter/slim@v5.0.0
env:
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LINTER_RULES_PATH: '.' # From https://github.com/github/super-linter/pull/859#issuecomment-709625090
VALIDATE_MARKDOWN: true
MARKDOWN_CONFIG_FILE: docs/.markdownlint.yml
FILTER_REGEX_INCLUDE: '/docs/.*'
|