PIFR 2.x workflow summary.

Provides an abstracted client-server model and plugin API for performing distributed operations such as code review and testing. Currently the project focuses on supporting Drupal development, but due to the extent of the code abstraction it can be extended to work with other platforms and environments.

Plugins

The project currently includes the following plugins, but there are plans to include a performance measuring plugin, code coverage plugin, security plugin, etc.

  • SimpleTest - runs SimpleTest tests and aggregates results.
  • Coder - reviews code using the coder and coder_tough_love routines.

Integration

An integration layer can be created to interface the project management system with the PIFR in order to provide a smoother, more enhanced workflow.

  • Project - integrates with project module to provide all information needed to perform reviews.

Design

The project consists of a server, client, and a shared base module that provides common functionality. The server manages the process, queue, and results while the client performs all operations and reports back. An optional project client can also be added to provide an integrated workflow with a project management tool (for example PIFT which integrates with the drupal.org project module) or the like. Both the project client API and the test client API are based on a PULL architecture where the server never makes a request, but simply responds to them.

Usage

Currently Drupal.org makes use of this platform for its development. The process is centered around qa.drupal.org which acts as the PIFR server. The test clients are donated machines that are managed by volunteers. Please see PIFR FAQs for more information on getting involved with qa.drupal.org.

Related documentation

Automated Testing Infrastructure and How to deploy a testbot

Related repositories

Project Issue File Test, Project Issue File Review, drupaltestbot-puppet, drupaltestbot

Maintainer

The project has been developed by Jimmy Berry (boombatower). The code is currently maintained by Jeremy Thorson (jthorson).

Project Information

Downloads