cloak/robo-coveralls-kit
Coveralls integration kit for the Robo task runner. Generate and upload PHP code coverage reports to Coveralls from your build pipeline with minimal configuration.
Read this first: the package is archived (last release 2015‑08‑23), has zero stars, zero dependents, and targets the PHP 5.x / Robo 0.x era. Before you write a single line of integration code, confirm it will even install against your Laravel app — it almost certainly will not on PHP 8+ without --ignore-platform-reqs and dependency pinning. Treat the steps below as an evaluation path, not a recommended install.
Minimal evaluation steps:
composer require --dev cloak/robo-coveralls-kit
If Composer resolves (unlikely on a modern Laravel skeleton), the first places to look are:
vendor/cloak/robo-coveralls-kit/README.md — the only documentation that exists.vendor/cloak/robo-coveralls-kit/src/ — the task class itself; it is a thin wrapper, so read it rather than guess at its API.RoboFile.php — where the task gets registered and configured.vendor/cloak/coveralls-kit/ — the underlying uploader library that actually talks to the Coveralls API.First use case: you already run vendor/bin/robo for build/deploy scripts, you generate a Clover coverage report with PHPUnit, and you want a robo coveralls command that pushes that report to Coveralls instead of invoking a separate binary. That is the entire value proposition — a task-runner entry point for a coverage upload.
For a Laravel developer today, the practical "getting started" answer is: don't. Use php-coveralls, a CI-native Coveralls action, or Codecov instead. Everything below assumes you are maintaining a legacy project that already depends on this.
The only meaningful workflow this package supports is: PHPUnit → Clover XML → Robo task → Coveralls API.
1. Generate coverage first. The task does not run tests; it uploads a file. In phpunit.xml:
<coverage>
<include>
<directory suffix=".php">app</directory>
</include>
<report>
<clover outputFile="build/logs/clover.xml"/>
</report>
</coverage>
Then run vendor/bin/phpunit --coverage-clover build/logs/clover.xml.
2. Register the task in RoboFile.php. The wrapper is thin — expect to set the Clover path and the repo token via the underlying coveralls-kit config, roughly:
class RoboFile extends \Robo\Tasks
{
public function coveralls()
{
// The precise method name depends on the wrapper version;
// inspect src/ before wiring it in.
return $this->taskCoveralls()
->clover('build/logs/clover.xml')
->run();
}
}
3. Keep the token in the environment. COVERALLS_REPO_TOKEN should come from your CI secret store, never from RoboFile.php or .env committed to the repo.
4. Chain it after the test task. In Robo's collection model:
$this->taskPhpUnit()->configFile('phpunit.xml')->run();
$this->taskCoveralls()->clover('build/logs/clover.xml')->run();
5. CI integration tips.
main and PRs), not every feature push.6. Integration boundary with Laravel. There is no Laravel service provider, facade, or config file here — it is a CLI build tool. Do not try to wire it into AppServiceProvider or an Artisan command; keep it purely in RoboFile.php and CI YAML so it never leaks into application runtime dependencies.
coveralls-kit targets the legacy Coveralls API. Coveralls has moved on; even if the package installs, uploads may be rejected or silently ignored. Verify with a real upload before trusting your coverage badges.consolidation/robo and old Guzzle versions. On modern Laravel you will hit solver conflicts, and forcing them risks breaking other dev tooling. Prefer a separate tools/ Composer project or a PHAR if you must run old Robo.clover.xml usually produces a confusing upload error rather than a clean "file not found." Assert the file exists in CI (test -s build/logs/clover.xml) before invoking the task.config/coveralls.php. Any configuration goes through method calls on the task or the underlying library — read src/ to find the exact setters.phpunit wrote clover.xml with non-zero size. (2) Confirm the token env var is present. (3) Run the Robo task with -v. (4) Inspect the HTTP response from Coveralls. (5) Only then suspect the wrapper.php-coveralls/php-coveralls with a .coveralls.yml, the official Coveralls GitHub Action, or Codecov — all actively maintained and PHP 8+ compatible. This package offers nothing those don't, and adds a Robo dependency to get there.How can I help you explore Laravel packages today?