Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/knapsackpro/knapsack_pro-ruby

Knapsack Pro gem splits tests across parallel CI nodes and makes sure that tests run in optimal time
https://github.com/knapsackpro/knapsack_pro-ruby

auto-balancing buildkite ci-server circle-ci cucumber minitest parallelism rspec ruby semaphore-ci snap-ci spinach testing-tools travis-ci turnip

Last synced: 28 days ago
JSON representation

Knapsack Pro gem splits tests across parallel CI nodes and makes sure that tests run in optimal time

Awesome Lists containing this project

README

        

# `knapsack_pro` ruby gem



Knapsack Pro

Speed up your tests


Run your 1-hour test suite in 2 minutes with optimal parallelisation on your existing CI infrastructure

---



Circle CI


Gem Version




Knapsack Pro wraps your current test runner(s) and works with your existing CI infrastructure to parallelize tests optimally:

- Dynamically splits your tests based on up-to-date test execution data
- Is designed from the ground up for CI and supports all of them
- Tracks your CI builds to detect bottlenecks
- Does not have access to your source code and collects minimal test data (with opt-in encryption)
- Enables you to export historical metrics about your CI builds
- Supports out-of-the-box any Ruby test runners, Cypress, Jest (and provides both SDK and API to integrate with any other language)
- Replaces local dependencies like Redis with an API and runs your tests regardless of network problems

The `knapsack_pro` gem supports all CIs and the following test runners:

- RSpec
- Cucumber
- Minitest
- test-unit
- Spinach
- Turnip

## Installation

The [Installation Guide](https://docs.knapsackpro.com/knapsack_pro-ruby/guide/?utm_source=github&utm_medium=readme&utm_campaign=knapsack_pro-ruby_gem&utm_content=installation_guide) will ask you a few questions and generate instruction steps for your project:



Install button

## Upgrade

Knapsack Pro follows semantic versioning, but make sure to check the [changelog](CHANGELOG.md) before updating gem with:

```bash
bundle update knapsack_pro
```

## Contributing

### Testing

RSpec:

```bash
bin/test
```

Scripted tests can be found in the [Rails App With Knapsack Pro repository](https://github.com/KnapsackPro/rails-app-with-knapsack_pro/blob/master/bin/knapsack_pro_all.rb).

### Publishing

1. Move the changes listed in the `UNRELEASED` section of the `CHANGELOG.md` to the proper version

2. Update the gem version in `lib/knapsack_pro/version.rb`

3. `git commit -am "Bump version x.x.x"`

4. Build, tag, push, release: `bundle exec rake release`

5. Update the latest available gem version in `TestSuiteClientVersionChecker` for the Knapsack Pro API repository.

6. Update the `knapsack_pro` gem version in:

- [Rails App With Knapsack Pro repository](https://github.com/KnapsackPro/rails-app-with-knapsack_pro)
- Knapsack Pro API internal repository