Queue mode - dynamic tests allocation across parallel CI nodes playThe recommended way to run tests - it ensures all parallel CI nodes finish work at a similar time. It auto balances tests split between parallel CI nodes to get the fastest CI build time.Queue Mode solves CI node bottlenecks impacting your parallel tests split:
|
|
Regular mode - test suite split based on time execution playIt is deterministic way of running tests. It generates subset of test suite per CI node before running tests. Can be used with knapsack_pro ruby gem. |
|
Auto split slow test file between parallel CI nodesA single test file can be auto split by test examples between parallel jobs. |
|
Automated tests time execution recording |
|
Test suite split based on most up to date tests time execution data |
|
Support for short-lived CI nodesKnapsack Pro is fault-tolerant and can withstand possible CI instance preemptions (shut down) when you use highly affordable CI nodes like Google Cloud Preemptible VMs or Amazon EC2 Spot Instances. |
|
Knapsack Pro available as Heroku add-onKnapsack Pro Heroku add-on page & See introduction video |
|
Optimal test suite split for newly created branches |
|
Smart test suite split when tests time execution data are not available |
|
CI build metrics to detect bottlenecksFind slow test files. |
|
Export historical metrics about CI buildsHow to export test suite timing data from the Knapsack Pro API |
|
Track test suite split for git commit hash | |
Track test suite split for branch name | |
Track test suite split for CI node total number | |
Retry failed CI node with the same subset of tests in Queue Mode. | |
Reproduce tests for a specific CI node in your development environment | |
Security |
|
---|---|
HTTPS connection to Knapsack Pro API | |
Encrypt test file names before sending them to the Knapsack Pro API | |
Fallback mode - run tests even in case of connection problems with the Knapsack Pro API | |
RSpec | |
Minitest | |
Test::Unit | |
Cucumber | |
Spinach | |
Turnip | |
JavaScript test runners support |
|
Cypress | |
Jest | |
Vitest | |
Use @knapsack-pro/core to build a JS test runner integration with the Knapsack Pro API. |
|
Other languages test runners support |
|
How to build a custom Knapsack Pro API client from scratch in any programming language |
|
Do you use different programming language or test runner? Let us know in the poll |
|
Supported CI providers |
|
It works with all CI servers (setup with ENV vars) Knapsack Pro works with any CI provider. The CIs listed below are the ones whose environment variables are auto-detected by Knapsack Pro. If you are using a different CI provider, you can still configure Knapsack Pro by following the installation guide. |
|
GitHub Actions ( see the video demo) | |
CircleCI | |
Buildkite.com | |
Gitlab CI | |
Heroku CI | |
SemaphoreCI.com | |
Jenkins | |
Travis-CI.org | |
Codeship.com | |
Codefresh.io ( see the video demo) | |
AWS CodeBuild | |
Google Cloud Build | |
Azure Pipelines | |
Bitbucket Pipelines | |
TeamCity | |
Drone.io | |
Buddy.works | |
AppVeyor | |
GoCD | |
Concourse | |
Cirrus-CI.org | |
Jenkins X for Kubernetes | |
Argo CI/CD for Kubernetes | |
Flux CD for Kubernetes | |
Harness.io CI/CD | |
Tekton Kubernetes-native CI/CD | |
Prow Kubernetes based CI/CD |