|
1 |
| -# knapsack gem |
| 1 | +# Knapsack |
2 | 2 |
|
3 |
| -Knapsack splits tests evenly across parallel CI nodes to run fast CI build and save you time. |
| 3 | +<p align="center"> |
| 4 | + <a href="https://knapsackpro.com?utm_source=github&utm_medium=readme&utm_campaign=knapsack_gem&utm_content=hero_logo"> |
| 5 | + <img alt="Knapsack" src="./.github/assets/knapsack-diamonds.png" width="300" height="300" style="max-width: 100%;" /> |
| 6 | + </a> |
| 7 | +</p> |
4 | 8 |
|
5 |
| -| | knapsack gem | knapsack_pro gem | |
6 |
| -| -------------------------------------------- | ------------ | ---------------- | |
7 |
| -| __Is free__ | ✓ Yes | ✓ Yes, [free plan](https://knapsackpro.com?utm_source=github&utm_medium=readme&utm_campaign=knapsack_gem&utm_content=free_plan) | |
8 |
| -| __Regular Mode - a static tests split__ | ✓ Yes | ✓ Yes | |
9 |
| -| __Queue Mode - a dynamic tests split__ <br>([ensures all CI nodes finish work at the same time](https://docs.knapsackpro.com/2020/how-to-speed-up-ruby-and-javascript-tests-with-ci-parallelisation)) | No | ✓ Yes | |
10 |
| -| __Auto [split slow RSpec test file](https://knapsackpro.com/faq/question/how-to-split-slow-rspec-test-files-by-test-examples-by-individual-it) between parallel CI nodes__ <br>(a single test file can be auto split by test examples between parallel jobs) | No | ✓ Yes | |
11 |
| -| Tracking tests timing per commit, branch | No | ✓ Yes | |
12 |
| -| Support for other programming languages | No | ✓ Yes | |
13 |
| -| Support for CI providers | limited | ✓ Yes | |
14 |
| -| __Installation README__ | [Install README](http://docs.knapsackpro.com/ruby/knapsack) | [Install README](https://docs.knapsackpro.com) | |
| 9 | +<h3 align="center">Speed up your tests</h3> |
| 10 | +<p align="center">Run your 1-hour test suite in 2 minutes with optimal parallelisation on your existing CI infrastructure</p> |
15 | 11 |
|
16 |
| -[Features of knapsack vs knapsack_pro Ruby gem](https://knapsackpro.com/features/ruby_knapsack_pro_vs_knapsack?utm_source=github&utm_medium=readme&utm_campaign=knapsack_gem&utm_content=ruby_knapsack_pro_vs_knapsack) |
| 12 | +--- |
17 | 13 |
|
18 |
| -# Do you use Heroku? |
| 14 | +<div align="center"> |
| 15 | + <a href="https://rubygems.org/gems/knapsack"> |
| 16 | + <img alt="Gem Version" src="https://badge.fury.io/rb/knapsack.svg" /> |
| 17 | + </a> |
| 18 | +</div> |
19 | 19 |
|
20 |
| -Do you know Knapsack Pro Ruby gem is available as Heroku add-on? It works with your current CI server. |
21 |
| -https://elements.heroku.com/addons/knapsack-pro |
| 20 | +<br /> |
| 21 | +<br /> |
22 | 22 |
|
23 |
| -Knapsack Pro has Queue Mode that will split Ruby & JS tests in a dynamic way across parallel CI nodes to ensure each parallel job takes a similar time. Thanks to that there is no bottleneck in your CI pipelines. |
| 23 | +Knapsack wraps your current test runner and works with your existing CI infrastructure to split tests optimally. |
24 | 24 |
|
25 |
| -__See introduction how the Knapsack Pro add-on works__ |
26 |
| -https://youtu.be/rmXES2N0_QU |
| 25 | +It comes in two flavors, `knapsack` and `knapsack_pro`: |
27 | 26 |
|
28 |
| -You may also find useful article how to run parallel dynos on Heroku CI to complete tests faster |
29 |
| -https://docs.knapsackpro.com/2019/how-to-run-tests-faster-on-heroku-ci-with-parallel-dynos |
| 27 | +| | `knapsack` | `knapsack_pro` | |
| 28 | +| ------------------------------- | ---------- | --------------------------------------- | |
| 29 | +| Free | ✅ | ✅ [Free plan](https://knapsackpro.com?utm_source=github&utm_medium=readme&utm_campaign=knapsack_gem&utm_content=free_plan) | |
| 30 | +| Static split | ✅ | ✅ | |
| 31 | +| [Dynamic split](https://docs.knapsackpro.com/overview/#queue-mode-dynamic-split) | ❌ | ✅ | |
| 32 | +| [Split by test examples](https://docs.knapsackpro.com/ruby/split-by-test-examples/) | ❌ | ✅ | |
| 33 | +| Graphs, metrics, and stats | ❌ | ✅ | |
| 34 | +| Programming languages | 🤞 (Ruby) | ✅ (Ruby, Cypress, Jest, SDK/API) | |
| 35 | +| CI providers | 🤞 Limited | ✅ (All) | |
| 36 | +| [Heroku add-on](https://elements.heroku.com/addons/knapsack-pro) | ❌ | ✅ | |
| 37 | +| Additional features | ❌ | 🤘 ([Overview](https://docs.knapsackpro.com/overview/)) | |
| 38 | +| | [Install](http://docs.knapsackpro.com/ruby/knapsack) | [Install](https://docs.knapsackpro.com) | |
30 | 39 |
|
31 |
| -## Do you know |
| 40 | +[`knapsack` vs `knapsack_pro` full comparison](https://knapsackpro.com/features/ruby_knapsack_pro_vs_knapsack?utm_source=github&utm_medium=readme&utm_campaign=knapsack_gem&utm_content=ruby_knapsack_pro_vs_knapsack) |
32 | 41 |
|
33 |
| -* Knapsack Pro is risk-free integration! Knapsack Pro runs tests in Fallback Mode if your CI servers can't reach our API for any reason. |
34 |
| -* We don't need access to your repository. Knapsack Pro is just wrapper around test runner like RSpec, Cucumber, Minitest etc. |
35 |
| -* Hundreds of developers use Knapsack Pro every day to run fast CI builds. |
36 |
| -* It works with other programming languages. |
| 42 | +# Migrate from `knapsack` to `knapsack_pro` |
| 43 | + |
| 44 | +If you are already using `knapsack` and want to give `knapsack_pro` a try, here's [how to migrate in 10 minutes](./MIGRATE_TO_KNAPSACK_PRO.md). |
0 commit comments