Skip to content

canonical/testflinger

Repository files navigation

Testflinger

Documentation status

Testflinger is a system for orchestrating the time-sharing of access to a pool of target machines.

Each Testflinger system consists of:

  • A web service (called just Testflinger) that provides an API to request jobs by placing them on a queue.
  • Per machine agents that wait for jobs to placed on queues they can service and then process them.

Jobs can be either fully automated scripts that can attempt to complete within the allocated time or interactive shell sessions.

The Testflinger system is particular useful for sharing finite machine resources between different consumers in a predictable fashion.

Typically this has been used for managing a test lab where CI/CD test runs and also exploratory testing by human operators is desired.

Contents of this Repository

A full deployment of Testflinger consists of the following components:

  • Testflinger Server: The server hosting the API and Web UI.
  • Testflinger Agent: Requests and processes jobs from associated queues on the server on behalf of a device.
  • Testflinger Device Connectors: Handles provisioning and other device-specific details for each type of device.
  • Testflinger CLI: The command-line tool for submitting jobs, checking status of jobs, and retreiving results.
  • Testflinger Common: Common modules, functions, enums, etc. shared across the Testflinger projects.

GitHub Actions

You can use the following GitHub actions to use Testflinger in your GitHub workflows:

Documentation

You can find more information and documentation on the Testflinger Documentation Page.

Community and Support

You can report any issues, bugs, or feature requests on the project's GitHub repository.

Contribute to Testflinger

Testflinger is open source. Contributions are welcome.

If you're interested, start with the contribution guide.