Checkout Config
# .scrutinizer.yml
build:
environment:
variables:
APP_ENV: test
project_setup:
override: true
before:
- echo "Skipping composer install as vendor directory is already included."
nodes:
analysis:
environment:
php:
version: 7.4
project_setup:
override: true
tests:
override:
- php-scrutinizer-run
cache:
directories:
- vendor/
services:
mysql57:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql8:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql9:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
php74:
environment:
php: 7.4
project_setup:
override: true
tests:
override:
- vendor/bin/phpunit
cache:
directories:
- vendor/
services:
mysql57:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql8:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql9:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
php80:
environment:
php: 8.0
project_setup:
override: true
tests:
override:
- vendor/bin/phpunit
cache:
directories:
- vendor/
services:
mysql57:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql8:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql9:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
php81:
environment:
php: 8.1
project_setup:
override: true
tests:
override:
- vendor/bin/phpunit
cache:
directories:
- vendor/
services:
mysql57:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql8:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql9:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
php82:
environment:
php: 8.2
project_setup:
override: true
tests:
override:
- vendor/bin/phpunit
cache:
directories:
- vendor/
services:
mysql57:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql8:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql9:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
php83:
environment:
php: 8.3
project_setup:
override: true
tests:
override:
- vendor/bin/phpunit
cache:
directories:
- vendor/
services:
mysql57:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql8:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql9:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
php84:
environment:
php: 8.4
project_setup:
override: true
tests:
override:
- vendor/bin/phpunit
cache:
directories:
- vendor/
services:
mysql57:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql8:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql9:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
coverage:
environment:
php: 8.2 # Use a stable PHP version for coverage
project_setup:
override: true
tests:
override:
- command: vendor/bin/phpunit --coverage-clover=coverage.xml
coverage:
file: coverage.xml
format: clover
cache:
directories:
- vendor/
services:
mysql57:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql8:
image: mysql:8
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
mysql9:
image: mysql:latest
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
filter:
excluded_paths:
- '_archive/*'
- 'tests/*'
- docs
tools:
php_analyzer: true
external_code_coverage:
timeout: 300 # Timeout in seconds.