refactor: consolidate PHP testing actions with Laravel detection

Merge php-tests, php-laravel-phpunit, and php-composer into single php-tests action:

Consolidation:
- Merge three PHP actions into one with framework auto-detection
- Add framework input (auto/laravel/generic) with artisan file detection
- Inline PHP version detection from multiple sources
- Inline Composer setup, caching, and dependency installation
- Add conditional Laravel-specific setup steps

Features:
- Auto-detect Laravel via artisan file presence
- PHP version detection from .tool-versions, Dockerfile, composer.json, etc.
- Composer dependency management with retry logic and caching
- Laravel setup: .env copy, key generation, permissions, SQLite database
- Smart test execution: composer test for Laravel, direct PHPUnit for generic

Outputs:
- framework: Detected framework (laravel/generic)
- php-version, composer-version, cache-hit: Setup metadata
- test-status, tests-run, tests-passed: Test results

Deleted:
- php-laravel-phpunit/: Laravel-specific testing action
- php-composer/: Composer dependency management action
- Related test files and custom validators

Updated:
- CLAUDE.md: 26 → 24 actions
- generate_listing.cjs: Remove php-laravel-phpunit, php-composer
- validate-inputs: Remove php-laravel-phpunit custom validator

Result: 3 actions → 1 action, maintained all functionality with simpler interface.
This commit is contained in:
2025-11-20 22:38:00 +02:00
parent 49d232f590
commit 7b14ba3b5a
49 changed files with 627 additions and 2081 deletions

View File

@@ -28,8 +28,6 @@ const CATEGORIES = {
// Testing & Quality
'php-tests': 'Testing',
'php-laravel-phpunit': 'Testing',
'php-composer': 'Testing',
// Build & Package
'csharp-build': 'Build',
@@ -55,9 +53,7 @@ const CATEGORIES = {
// Language support mappings
const LANGUAGE_SUPPORT = {
'language-version-detect': ['PHP', 'Python', 'Go', '.NET', 'Node.js'],
'php-tests': ['PHP'],
'php-laravel-phpunit': ['PHP', 'Laravel'],
'php-composer': ['PHP'],
'php-tests': ['PHP', 'Laravel'],
'python-lint-fix': ['Python'],
'go-lint': ['Go'],
'go-build': ['Go'],