kylekatarnls/multi-tester
Run dependent projects’ test suites against your current package changes. Multi-tester swaps your package into other projects’ vendor dirs and executes their unit/CI (Travis-friendly) commands, helping catch breaking changes early in Composer ecosystems.
vendor/ structure and CI/CD pipelines (e.g., GitHub Actions, Travis CI).spatie/laravel-permission). It addresses the pain point of unintended breakages in dependent projects due to small changes in shared packages.vendor/ directory, requiring minimal setup (e.g., adding a dev dependency and config file). No Laravel-specific modifications are needed.kylekatarnls/multi-tester) and requires maintaining a .multi-tester.yml config file. Low risk for Laravel teams already using Composer.travis shortcut requires the target project to have a .travis.yml file. Fallback to manual install/script commands is available.--stop-on-failure to fail fast..multi-tester.yml.autoload and replace keys (since v1.4.0), but complex Laravel autoloading (e.g., psr-4 with namespaces) should be tested.pdo_mysql), ensure the CI environment matches production.script commands in .multi-tester.yml account for Laravel’s CLI tooling.main) or all PRs?--stop-on-failure) or continue testing all projects?.multi-tester.yml as dependencies evolve? (DevOps or product teams?)php artisan test) that need custom script entries?.env) be handled for dependent projects?actions/checkout step followed by vendor/bin/multi-tester.travis shortcut or custom commands.vendor/bin/multi-tester after installation..multi-tester.yml..multi-tester.yml.kylekatarnls/multi-tester as a dev dependency:
composer require kylekatarnls/multi-tester --dev
.multi-tester.yml with 1–2 high-priority projects:
spatie/laravel-permission:
version: ^4.0
laravel/framework:
version: ^10.0
vendor/bin/multi-tester --add=spatie/laravel-permission
vendor/bin/multi-tester
jobs:
multi-tester:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
- run: composer install --dev
- run: vendor/bin/multi-tester
matrix:
include:
- php: 8.3
env: MULTITEST='on'
script:
- if [ "$MULTITEST" = "on" ]; then vendor/bin/multi-tester; fi;
.multi-tester.yml.autoload and replace keys (v1.4.0+).vendor/bin/ structure.multi-tester before committing to catch issues early.multi-tester on PRs targeting `mainHow can I help you explore Laravel packages today?