coverage-clover reports).phpunit.xml or phpunit facade).coverage-clover output (Laravel projects already generate this via phpunit.xml).after_success hooks).php vendor/bin/php-coveralls in workflows).COVERALLS_RUN_LOCALLY=1 (useful for debugging)..coveralls.yml for repo token/configuration (securely manageable via Laravel’s .env).phpunit.xml).php-coveralls/php-coveralls as a reference and implement a custom Coveralls uploader (e.g., via Guzzle 7).phpunit --coverage-text or phpunit --coverage-html instead.--dev dependency).phpunit.xml (if configured for coverage-clover).Artisan commands (must be invoked manually).coverage-clover output (Pest supports this via --coverage-clover).clover.xml.phpunit.xml generates coverage-clover (e.g., build/logs/clover.xml).composer require --dev php-coveralls/php-coveralls
phpunit --coverage-clover=build/logs/clover.xml
php vendor/bin/php-coveralls --dry-run
- name: Coveralls
run: |
php vendor/bin/php-coveralls -v
env:
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
.travis.yml template (but note Travis deprecation).use GuzzleHttp\Client;
$client = new Client();
$response = $client->post('https://coveralls.io/api/v1/jobs', [
'json' => [
'source_files' => [...],
'service_name' => 'github-actions',
'service_job_id' => getenv('CI_JOB_ID'),
],
'headers' => ['Authorization' => 'token ' . getenv('COVERALLS_REPO_TOKEN')],
]);
| Component | Compatibility | Risk |
|---|---|---|
| PHP 8.x | ❌ Untested | High |
| Laravel 9+ | ⚠️ No evidence of testing | Medium |
| PHPUnit 9.x | ⚠️ May work (last tested with 6.x) | Medium |
| Guzzle 7 | ❌ Uses Guzzle 6 | High (API changes) |
| GitHub Actions | ✅ Manual setup required | Low |
| Pest Framework | ✅ If coverage-clover is configured |
Low |
php-coveralls locally with phpunit --coverage-clover.clover.xml generation.--dry-run first.COVERALLS_REPO_TOKEN is securely passed..coveralls.yml, CI hook).phpunit/phpunit, guzzlehttp/guzzle (version conflicts possible).phpcov for merged coverage reports (parallel test suites).-v flag) but limited documentation.--exclude-no-stmt to filter irrelevant files.clover.xml files (useful for monorepos or parallel test suites).phpcov for merging (adds complexity).clover.xml, uploading JSON).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Coveralls API |
How can I help you explore Laravel packages today?