Skip to content

PHPStan level 10 part I #2423

PHPStan level 10 part I

PHPStan level 10 part I #2423

Workflow file for this run

name: PHP tests
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
info:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- name: OS info
run: cat /etc/os-release
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- name: PHP info
run: |
php -v
php -m
composer-validate:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Validate composer.json and composer.lock
run: composer --working-dir=app validate
check-file-patterns:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- run: make --directory=app check-file-patterns
check-makefile:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- run: make --directory=app check-makefile
check-sri-macros-concat:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- run: make --directory=app check-sri-macros-concat
lint-php:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- run: make --directory=app lint-php
lint-latte:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- run: make --directory=app lint-latte
lint-neon:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- run: make --directory=app lint-neon
lint-xml:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- run: make --directory=app lint-xml-auto-install
phpcs:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Get PHP_CodeSniffer cache file pattern
id: phpcs-cache
run: echo "file=$(php -r "echo sys_get_temp_dir() . '/phpcs.*';")" >> $GITHUB_OUTPUT
- uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
with:
path: ${{ steps.phpcs-cache.outputs.file }}
key: phpcs-cache-php${{ matrix.php-version }}
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- run: make --directory=app phpcs
phpstan:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Get PHPStan result cache directory
id: phpstan-cache
run: echo "dir=$(php -r "echo sys_get_temp_dir() . '/phpstan';")" >> $GITHUB_OUTPUT
- uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
with:
path: ${{ steps.phpstan-cache.outputs.dir }}
key: phpstan-cache-php${{ matrix.php-version }}
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- run: make --directory=app phpstan
phpstan-vendor:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Get PHPStan result cache directory
id: phpstan-cache
run: echo "dir=$(php -r "echo sys_get_temp_dir() . '/phpstan';")" >> $GITHUB_OUTPUT
- uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
with:
path: ${{ steps.phpstan-cache.outputs.dir }}
key: phpstan-vendor-cache-php${{ matrix.php-version }}
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- run: make --directory=app phpstan-vendor
tester:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: pcov
php-version: ${{ matrix.php-version }}
- name: Create symlink in /srv/www
run: |
sudo mkdir --parents /srv/www
sudo ln --symbolic $GITHUB_WORKSPACE /srv/www
- run: make --directory=app tester
- name: Failed test output, if any
if: failure()
run: for i in $(find ./app/tests -name \*.actual); do echo "--- $i"; cat $i; echo; echo; done
- name: Upload test code coverage
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
if: success()
with:
name: Test code coverage (PHP ${{ matrix.php-version }})
path: 'app/temp/coverage.html'
retention-days: 5
psalm:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- run: make --directory=app psalm
composer-dependency-analyser:
runs-on: ubuntu-latest
strategy:
matrix:
php-version:
- "8.3"
- "8.4"
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
coverage: none
php-version: ${{ matrix.php-version }}
- run: make --directory=app composer-dependency-analyser