Project

performa

0.0
No commit activity in last 3 years
No release in over 3 years
Performa allows you to quickly run a script on a combination of docker images and staging commands
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

~> 0.8
 Project Readme

Performa

Gem Version Build Status Maintainability

Performa allows you to quickly run a script on a combination of docker images and staging commands. It is fast, threadsafe, and has only one small external dependency (to colorize the output).

For example, Performa makes it trivial to run a benchmark on 3 versions of Ruby * 4 versions of ActiveRecord = 12 different environments.
Because all environments are cached as docker images, running a different command on those 12 environments is relatively quick: 9 seconds on my Intel(R) Core(TM) i7-4578U CPU @ 3.00GHz.

Installation

$ gem install performa

Basic Usage

You can quickly generate an example config file by running performa --init.
The default configuration is commented to describe all possible options and what to do with them:

---
## [Optional] Config file version (default: latest)
version: 1

## [Required] Base docker images to run command on
images:
  - ruby:2.4
  - ruby:2.5

## [Optional] Commands setting up each image before running command.
## Environments generated = images * stages
# stages:
#   activerecord_4:
#     - gem install sqlite3
#     - gem install activerecord -v=4.0.0
#   activerecord_5:
#     - gem install sqlite3
#     - gem install activerecord -v=5.0.0

## [Optional] Cache environments (as performa docker images)
# cache_environments: true

## [Optional] Volumes to mount
# volumes:
#   - .:/app

## [Required] Command to run on all environments
command: |
  ruby -e "puts RUBY_VERSION"

# [Optional] Where to output the command result
# Default value: STDOUT
# If you set it a directory, existing or not, that directory may be created,
# and the results will be put in individual files for each environment.
# output: STDOUT
# output: ./performa-results

Once you've finished setting up your configuration, you can run the command performa.

Compatibility

Ruby >= 2.5

License

Copyright (c) 2018-2019 Christophe Maximin. This software is released under the MIT License.