Skip to content

🧪 Run Tests & 🛠️ Static Analysis #839

🧪 Run Tests & 🛠️ Static Analysis

🧪 Run Tests & 🛠️ Static Analysis #839

Workflow file for this run

name: 🧪 Run Tests & 🛠️ Static Analysis
on:
push:
branches:
- main
- 2.x
pull_request:
schedule:
- cron: '0 0 * * *' # Daily at midnight
jobs:
static-analysis:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: [ 8.2 ]
name: 🐘 PHP ${{ matrix.php }} Static Analysis
steps:
- name: 📥 Checkout Code
uses: actions/checkout@v4
- name: 🔧 Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
- name: 🚚 Cache Composer Dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-${{ matrix.php }}-
- name: 📦 Install Dependencies
run: |
composer config --global allow-plugins true
composer install
- name: 🧹 Run PHP CS Fixer (Code Style)
run: vendor/bin/php-cs-fixer fix --dry-run
- name: 🔍 Run PHPStan (Static Analysis)
run: vendor/bin/phpstan analyse
- name: 🚀 Run PHPLint (Syntax Check)
run: vendor/bin/phplint
prime-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- { php: 8.4, phpunit: 10.5.* }
- { php: 8.3, phpunit: 10.5.* }
- { php: 8.2, phpunit: 10.5.* }
name: 🐘 PHP ${{ matrix.php }}
steps:
- name: 📥 Checkout code
uses: actions/checkout@v4
- name: 🔧 Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
- name: 🚚 Cache dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-${{ matrix.php }}-
- name: 📦 Install dependencies
run: |
sed -i '/"require": {/,/},/d; /"require-dev": {/,/},/d' composer.json
composer config --global allow-plugins true
composer require "phpunit/phpunit:${{ matrix.phpunit }}" "mockery/mockery" "psr/container" --no-interaction --no-update
composer update --prefer-lowest -W
- name: ✅ Execute tests
run: vendor/bin/phpunit --testsuite prime
symfony-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- { symfony: 7.2.*, php: 8.4, phpunit: 10.5.* }
- { symfony: 7.2.*, php: 8.3, phpunit: 10.5.* }
- { symfony: 7.2.*, php: 8.2, phpunit: 10.5.* }
- { symfony: 7.1.*, php: 8.2, phpunit: 10.5.* }
- { symfony: 7.0.*, php: 8.2, phpunit: 10.5.* }
name: 🌉 Symfony ${{ matrix.symfony }} PHP ${{ matrix.php }}
steps:
- name: 📥 Checkout code
uses: actions/checkout@v4
- name: 🔧 Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
- name: 🚚 Cache dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ hashFiles('composer.json') }}
restore-keys: ${{ runner.os }}-composer-${{ matrix.php }}-
- name: 📦 Install dependencies
run: |
sed -i '/"require": {/,/},/d; /"require-dev": {/,/},/d' composer.json
composer config --global allow-plugins true
composer config extra.symfony.require "${{ matrix.symfony }}"
composer require "symfony/config:${{ matrix.symfony }}" "symfony/console:${{ matrix.symfony }}" "symfony/dependency-injection:${{ matrix.symfony }}" "symfony/framework-bundle:${{ matrix.symfony }}" "symfony/http-kernel:${{ matrix.symfony }}" "symfony/translation:${{ matrix.symfony }}" "symfony/twig-bundle:${{ matrix.symfony }}" "phpunit/phpunit:${{ matrix.phpunit }}" "mockery/mockery" "psr/container" "monolog/monolog" --no-interaction --no-update
composer update --prefer-lowest -W
- name: ✅ Execute tests
run: vendor/bin/phpunit --testsuite symfony
laravel-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- { laravel: 11.*, testbench: 9.*, php: 8.3, phpunit: 10.5.* }
- { laravel: 11.*, testbench: 9.*, php: 8.2, phpunit: 10.5.* }
name: 🏗 Laravel ${{ matrix.laravel }} PHP ${{ matrix.php }}
steps:
- name: 📥 Checkout code
uses: actions/checkout@v4
- name: 🔧 Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: fileinfo
coverage: none
- name: 🚚 Cache dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache
key: ${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
restore-keys: ${{ matrix.php }}-composer
- name: 📦 Install dependencies
run: |
sed -i '/\"require\": {/,/},/d; /\"require-dev\": {/,/},/d' composer.json
composer config --global allow-plugins true
composer require "laravel/framework:${{ matrix.laravel }}" "phpunit/phpunit:${{ matrix.phpunit }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
composer update --prefer-lowest -W
- name: ✅ Execute tests
run: vendor/bin/phpunit --testsuite laravel