Robo
Robo

Robo is a task runner you always have been looking for. It allows you to write fully customizable tasks in common OOP PHP style. Robo has comprehensive list of built-in common tasks for development, testing, and deployment.

Robo is a modern and simple task runner for PHP designed to automate common development and deployment workflows.

The principal functionalities of this tool include:

Comprehensive Automation

  • Workflow Scripting: It allows for the creation of cross-platform scripts to handle repetitive tasks.

  • Asset Processing: Robo can automate the processing of web assets, including Less/Sass compilation and file minification.

  • Filesystem Watching: The tool includes a "watch" task that monitors filesystem changes to automatically trigger actions like rebuilding assets or running tests.

  • Deployment & Remote Tasks: It supports deployment via SFTP, SSH, and Docker, and can manage the execution of daemons and workers.

Ease of Implementation and Use

  • RoboFile.php: Users define their tasks as public methods inside a specific file named RoboFile.php, which is generated by running robo init.

  • Command Line Interface: Every public method in the RoboFile automatically becomes an available command in the CLI (e.g., a method named testAcceptance becomes the command robo test:acceptance).

  • Flexible Installation: It can be installed globally as a standalone Phar archive for general use or integrated into specific projects using Composer.

Built-in Task Library

  • Testing Integration: It features specialized tasks for running tests, including support for acceptance testing with local or Selenium servers.

  • System Maintenance: Robo provides tools for cleaning logs and cache directories while intelligently ignoring essential files like .gitignore.

  • Archive Creation: The tool can be used to package applications into Phar archives.

Extensibility

  • Framework Architecture: Beyond being a standalone tool, Robo serves as a framework that can be extended with custom logic.

  • Community Ecosystem: Developers can create their own task packages and share them on Packagist using the robo-tasks type, allowing for a modular and growing ecosystem.