Back to top

OpenEuropa Task Runner: a PHP task runner based on Robo and focused on extensibility

At the European Commission we enjoy a modern Composer-based workflow: every module, profile or theme lives in its own GitHub repository, having all its dependencies (including Drupal core) listed in the project's composer.json: this allows to have a fully functional development site right within the project directory by simply running "composer install".

But what about all those repetitive tasks such as setting up database credentials, prepare test configuration files, set symlinks, etc.?

Enter the OpenEuropa Task Runner.

The OpenEuropa Task Runner is a modern PHP task runner based on Robo and focused on extensibility. It allows developers to quickly setup their site and automate repetitive tasks.

In this session we will cover the following topics:

  • A brief overview of Robo, its strengths and capabilities
  • An introduction of the Task Runner main functionalities
  • An walk-through the Task Runner bundled-in commands, namely:
    • Generate a changelog for the current project based on its GitHub issues and pull requests
    • Install a target Drupal site using default configuration values and/or CLI options
    • Run Drupal pre-install commands as listed under the drupal.pre_install property
    • Run Drupal post-install commands as listed under the drupal.post_install property
    • Setup default Drupal settings file by appending values specified at drupal.settings
    • Setup Drush 8 and 9 configuration files
    • Create and archive a release for the current project
  • Working with the Task Runner YAML configuration file(s)
  • Extending the Task Runner by:
    • Expose custom commands as YAML configuration
    • Expose custom commands as PHP classes
    • Package and re-distribute Task Runner commands
  • Future roadmap

For more information about the OpenEuropa project, of which the Task Runner is part, please refer to its project page.

Development
Intermediate
Room
Wunder Space (B103)
Session type
Session
Speakers