summaryrefslogtreecommitdiff
path: root/.github/workflows/php-code-quality.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/php-code-quality.yml')
-rw-r--r--.github/workflows/php-code-quality.yml67
1 files changed, 67 insertions, 0 deletions
diff --git a/.github/workflows/php-code-quality.yml b/.github/workflows/php-code-quality.yml
new file mode 100644
index 000000000..9a4618132
--- /dev/null
+++ b/.github/workflows/php-code-quality.yml
@@ -0,0 +1,67 @@
+name: PHP Code Quality
+
+on:
+ pull_request:
+ paths:
+ - '**.php'
+ - 'phpstan.neon'
+ push:
+ branches:
+ - main
+ paths:
+ - '**.php'
+ - 'phpstan.neon'
+ # Allow manual triggering
+ workflow_dispatch:
+
+env:
+ fail-fast: true
+
+permissions:
+ contents: read
+
+jobs:
+ phpstan:
+ name: PHPStan
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v5
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: '8.4'
+ coverage: none
+ tools: none
+
+ - name: Run PHPStan
+ run: vendor/bin/phpstan analyze --no-progress
+
+ phpunit:
+ name: PHPUnit
+ runs-on: ubuntu-latest
+ continue-on-error: ${{ matrix.experimental }}
+ strategy:
+ fail-fast: false
+ matrix:
+ php: ['8.2', '8.3', '8.4']
+ experimental: [false]
+ include:
+ - php: '8.5'
+ experimental: true
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v5
+
+ - name: Setup PHP ${{ matrix.php }}
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ coverage: none
+ tools: none
+
+ - name: Run PHPUnit
+ run: vendor/bin/phpunit --exclude integration --coverage-filter classes --coverage-filter include